修改文件
修改文件
修改文件有两种方式,一种简单粗暴直接,把文件的全部内容读到内存中,然后把原有的文件内容清空,重新写新的内容
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.bak
5、删掉a文件,把b文件的文件名改为a文件名
#打开2个文件 1修改一行a文件 就写一行到b文件 2 删除a文件 b文件名改成a文件名 import os with 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')#改名