在工程中,总要保存不同名字的文本,及占用空间也不利于整理,所以实现了一个Python原址读写的代码,事实上,改代码并不是原址读写,仅仅是生成一个temp临时文件,再删除源文件,最后将该临时文件移到源文件位置。
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
import codecs
def replace(file_path, pattern, subst):
'''
:param file_path: 输入文件
:param pattern:输入待修改的词
:param subst:目标词
:return:
'''
fh, abs_path = mkstemp()#Create temp file
print abs_path
with codecs.open(abs_path,'w','utf-8') as new_file:
with codecs.open(file_path,'r','utf-8') as old_file:
print(old_file)
for line in old_file:
line.replace(pattern, subst)
print line
new_file.write(line.replace(pattern, subst))
close(fh)
#Remove original file
remove(file_path)
#Move new file
move(abs_path, file_path)