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