修改文件
修改文件有两种方式,一种简单粗暴直接,把文件的全部内容读到内存中,然后把原有的文件内容清空,重新写新的内容
1、打开一个文件,获取到它的所有内容(磁盘-> 内存)
2、对内容进行修改3、清空原文件内容4、把新的内容写进去#简单粗暴修改 f = open('users','a+')f.seek(0)all_str = f.read() #打开一个文件,获取到所有内容 new_str= all_str.replace('123456','456782') #对内容进行修改 f.seek(0) #读完后,指针又指向文件末尾了,如果不重新seek,下面的清空文件不会清空指针之前的内容 f.truncate() #清空文件内 f.write(new_str) #写进新的内容 f.close()
f = open('users','a+') f.seek(0) all_str = '' for i in f:# print(i) xiaomeng,123456 lily,123456 new_s = 'syz_'+i #给原来的用户加一个syz_ all_str = all_str+new_s #一次循环只能加一个,循环完一次把前面循环加的都加上 f.seek(0) f.truncate() f.write(all_str) f.close()
第二种是把修改后的文件内容写到一个新的文件中
1、打开2个文件
2、a文件,读取一行3、写一行写到b文件4、a.txt a.txt.bak5、删掉a文件,把b文件的文件名改为a文件名#打开2个文件 1修改一行a文件 就写一行到b文件 2 删除a文件 b文件名改成a文件名import oswith open('words',encoding='utf-8') as fr,open('.words.bak','w',encoding='utf-8')as fw: for line in fr: new_line = line.replace('一','one') fw.write(new_line)os.remove('words') #删除文件os.rename('.words.bak','words')#改名