1 def change_file_code(coding,files_name):
2 try:
3 cache_data = linecache.getlines(files_name)
4 with open(files_name, 'wb') as out_file:
5 for line in range(len(cache_data)):
6 out_file.write(cache_data[line].encode(coding))
7 except Exception as e:
8 print(str(e))
由于文件涉及到windows的 CRLF 以及unix的LF问题,使用rb+会导致修改过的文件存在数据换行错误问题,使用wb则不会出现这样情况。具体原因待考证。
注:不建议使用此处的linecache 。使用linecache须在文件头注明文件编码格式:coding = utf-8
来源:oschina
链接:https://my.oschina.net/u/4413559/blog/3510596