第四章 python的文件操作
2020-12-13 02:16
标签:一个 插入 data 基本操作 表示 code 上进 name close 在python里,我们可以通过open()方法打开文件并且用内置方法处理文件内容。 需要注意的是,open() 会默认自动转换为2进制再存储(write方法执行时)。所以open命令也是在2进制的基础上进行存储的。 read() #全部读入内存 read(2)
r模式下2表示读取前两个字符(不是字节),当rb模式,就是读取2个字节了 write(str) #w模式下,写入字符串 wb模式下写入的是2进制,所以字符串需要decode到2进制进行写入:
flush() #强制将写入内存的数据刷到硬盘上,相当于保存到硬盘 文件不关闭,就会浪费资源。有时候写代码的时候会忘记close() 推荐文件打开方法:
对文件的写入是不能插入的(硬盘写入的规则) 第四章 python的文件操作 标签:一个 插入 data 基本操作 表示 code 上进 name close 原文地址:https://www.cnblogs.com/py-xiaoqiang/p/11030888.html
4.1 文件基本操作
obj = open(file='路径',mode='模式',encoding='编码')
obj.write() # 可写模式下
obj.read() # 可读模式下
obj.close()
4.2 打开模式
4.3 文件操作
‘obj.write(你好‘.decode(utf-8))
4.4 文件关闭
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()