第四章 python的文件操作
Posted py-xiaoqiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四章 python的文件操作相关的知识,希望对你有一定的参考价值。
在python里,我们可以通过open()方法打开文件并且用内置方法处理文件内容。
需要注意的是,open() 会默认自动转换为2进制再存储(write方法执行时)。所以open命令也是在2进制的基础上进行存储的。
4.1 文件基本操作
obj = open(file='路径',mode='模式',encoding='编码')
obj.write() # 可写模式下
obj.read() # 可读模式下
obj.close()
4.2 打开模式
- 操作字符串
- r/w/a
- r+/w+/a+
- 直接操作2进制
- rb/wb/ab
- r+b/w+b/a+b
4.3 文件操作
read() #全部读入内存
read(2) r模式下2表示读取前两个字符(不是字节),当rb模式,就是读取2个字节了
write(str) #w模式下,写入字符串
wb模式下写入的是2进制,所以字符串需要decode到2进制进行写入:
‘obj.write(你好‘.decode(utf-8))
- seek(光标字节的位置) #无视打开模式都是字节
- tell() #获取光标当前所在的字节位置
flush() #强制将写入内存的数据刷到硬盘上,相当于保存到硬盘
4.4 文件关闭
文件不关闭,就会浪费资源。有时候写代码的时候会忘记close()
推荐文件打开方法:
with open(file=‘路径‘,mode=‘模式‘,encoding=‘编码‘) as f: # 相当于 f = open(file=‘路径‘,mode=‘模式‘,encoding=‘编码‘) data = read() # 下一行会自动缩进, # 缩进里的代码执行完毕后自动关闭
同时打开复数个文件:
with open(file=‘路径‘,mode=‘模式‘,encoding=‘编码‘) as f1,open(file=‘路径‘,mode=‘模式‘,encoding=‘编码‘) as f2:
4.5 文件的修改
对文件的写入是不能插入的(硬盘写入的规则)
所以当想插入的时候,需要先把文件内容全部读入内存,然后修改之后重新全部写入。
- 大文件修改
如果文件过大。那我们可以用一个temp文件来作为过渡文件。
读取文件第一行(或者一定数量的字节),在内存修改,a模式写入temp文件。
全部写入temp文件后,temp文件用os.replace()来覆盖原文件。
## 一边读行,一边修改,一边写入新文件
import os
old_file = r'C:\Users\kouneli\Desktop\python\temp\test.txt'
new_file = r'C:\Users\kouneli\Desktop\python\temp\test_new.txt'
f = open(old_file,'r')
f_new = open(new_file,'a')
old_str = 'o'
new_str = 'K'
for line in f:
if old_str in line:
line = line.replace(old_str,new_str)
f_new.write(line)
f.close()
f_new.close()
os.replace(new_file,old_file) # 吧新文件名字改成源文件的名字,就把之前的覆盖掉了。 mac使用os.rename()
以上是关于第四章 python的文件操作的主要内容,如果未能解决你的问题,请参考以下文章
Vue报错:Uncaught TypeError: Cannot assign to read only property 'exports' of object 的解决方法(代码片段