python文件操作:文件的读写及修改-注意事项

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……

 

posted on 2017-11-21 00:00  alimin1987  阅读(2254)  评论(0编辑  收藏  举报