1. 第一种修改方式:
将文件的内容全部加载到内存中进行修改,改完后加载到硬盘。
1 #!/usr/bin/env python 2 # encoding: utf-8 3 4 f = open(file = 'old_file.txt', mode = 'r+', encoding = 'utf-8') 5 6 old_str = '我们' 7 new_str = '你们' 8 data = f.read() 9 10 data = data.replace(old_str, new_str) 11 12 f.seek(0) 13 f.truncate() 14 f.write(data) 15 16 f.close()
上面的例子,就是把old_file.txt中的'我们'替换成'你们'。
2. 第二种修改方式:
将文件中的内容一行一行的加载到内存中,当第一行加载到内存进行替换,替换完成后再加载到硬盘,再加载 第二行,如此类推。
1 #!/usr/bin/env python 2 # encoding: utf-8 3 4 import os 5 6 f1_name = 'old_file.txt' 7 f2_name = 'new_file.txt' 8 9 old_str = '我们' 10 new_str = '你们' 11 12 f1 = open(file = f1_name, mode = 'r', encoding = 'utf-8') 13 f2 = open(file = f2_name, mode = 'w', encoding = 'utf-8') 14 15 for line in f1: 16 if old_str in line: 17 line = line.replace(old_str, new_str) 18 f2.write(line) 19 20 os.rename(f2_name, f1_name) 21 22 f1.close() 23 f2.close()
上面的例子是把old_file.txt中的'我们'替换成'你们',然后保存到new_file.txt。通过重命名方式将new_file.txt 改为old_file.txt,覆盖原来的old_file.txt。