1.今天所说的文件的修改其实是替代,将某一行的字符用别的字符替代,用到replace。
f=open("perfect2","r",encoding="utf-8")
f_new=open("perfect2.bak","w",encoding="utf-8")
for line in f:
if "当我的笑灿烂像阳光" in line:
line=line.replace("当我的笑灿烂像阳光","just do for it")
f_new.write(line)
f.close()
f_new.close()
按行读取perfect记事本中的字符,如果有“当我的笑灿烂像阳光”,则替换为“just do for it“。
这时发现perfect2.bak中被替换。
以上文件内容的替换可以通过另一种方法来实现,需要引用sys模块,则以上程序可以写成:
f=open("perfect","r",encoding="utf-8")
f_new=open("perfect.bak","w",encoding="utf-8")
find_str = sys.argv[1]
replace_str=sys.argv[2]
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()
这个不是很难理解,所以不多做解释。
2.with语句,with代码块执行完毕时,内部会自动关闭并释放资源,不需要在写f.close().
with open("perfect","r",encoding="utf-8") as f:
#等于f=open("perfect","r",encoding="utf-8")
for line in f:
print(line)
with也可以打开多个文件:;
with open("perfect","r",encoding="utf-8") as f,\
open("perfect","r",encoding="utf-8") as f2: #同时打开多个文件