本身學python的open函數時,發如今pycharm裏新建一個file_name.txt文本文件,輸入中文保存。再用open(file_name,'r+')打開,再去讀寫時出現了一些問題。再三控制變量利用Notepad++多輪測試後,總結以下:python
1.當原文件爲utf8編碼格式,且不包含中文,則對其進行讀操做,正常;對其進行寫操做(非中文),正常,文件編碼格式不變;
當寫入中文字符時,文件編碼格式變爲gbk,此時pycharm中的文件會將你輸入的中文顯示爲16進制數,並會提示你用gbk編碼reload文件。
2.當原文件爲utf8編碼格式,若包含中文,此時對其進行讀操做,則可能報錯UnicodeDecodeError,也可能不報錯,但會輸出亂碼。是否報錯跟中文內容有關(當我在測試時在一串中文中加入'航'就報錯了,去掉又沒報錯,好奇怪).
寫入中文狀況與1相同。
建議用sys.getfilesystemencoding()查看系統編碼格式,再在open()裏改encoding。個人a=utf-8 ,open的encoding默認爲‘gbk’。至於具體報錯緣由,有待往後補充嘍...