data = open("D:yesterday2",encoding="utf-8").read() #注意编码问题
print(data) 此处不能操作
文件是全部读出来,读大型文件一般不适用。
f = open("D:yesterday2","w",encoding="utf-8")
#文件句柄 为了更好的操作文件 w是打开文件的模式
若是既要读,也要写 可以将上面的W换成 a (a代表的是追加的意思)
For line in f:#此种方法读写效率更好 高效的循环方法: 此处用于读写大型文件。
文件操作的时候,W模式 会覆盖原来的文件(因此原来的文件会消失,因此此处要注意)
f.tell()文件读写指针的问题
f.seek(0)指针位置回到0 0可以随便修改
write写后要用f.flush()刷到硬盘上
f = open("D:yesterday2","r+",encoding="utf-8")
读写 一般写在文件后面 基本上属于是在后面追加
f = open("D:yesterday2","w+",encoding="utf-8") 一般不用
写读 先创建文件 再写
文件的修改
一般是在内存中修改,在硬盘中修改 ,一般会覆盖
修改文件思路:
利用for循环,查找需要修改的内容
一般循环的时候,用条件去判断
import sys
f = open("我的太阳","r",encoding="utf-8")
f_new = open("我的太阳.bak","w",encoding="utf-8") #打开一个新文件,避免覆盖掉原文件
for line in f:
if find_str in line:
line = line.replace(find_str,replace_str)
f_new.write(line)
f.close()
f_new.close()
打开文件,不操作了,一定要记得关闭,所以一般时候更用with,具体语法如下:
with open ("log’,’r’) as f
with open("我的太阳","r",encoding="utf-8") as f:
for line in f:
print(line)
同时可以用此函数打开多个文件:
with open ("log1’) as obj1, open ("log2’) as obj2……