关于python内open函数encoding编码问题

与世无争的帅哥 提交于 2020-03-06 04:34:59

自己学python的open函数时,发现在pycharm里新建一个file_name.txt文本文件,输入中文保存。再用open(file_name,'r+')打开,再去读写时出现了一些问题。再三控制变量利用Notepad++多轮测试后,总结如下:

1.当原文件为utf8编码格式,且不包含中文,则对其进行读操作,正常;对其进行写操作(非中文),正常,文件编码格式不变;当写入中文字符时,文件编码格式变为gbk,此时pycharm中的文件会将你输入的中文显示为16进制数,并会提示你用gbk编码reload文件。2.当原文件为utf8编码格式,若包含中文,此时对其进行读操作,则可能报错UnicodeDecodeError,也可能不报错,但会输出乱码。是否报错跟中文内容有关(当我在测试时在一串中文中加入'航'就报错了,去掉又没报错,好奇怪).写入中文情况与1相同。建议用sys.getfilesystemencoding()查看系统编码格式,再在open()里改encoding。我的a=utf-8 ,open的encoding默认为‘gbk’。至于具体报错原因,有待日后补充喽...
     
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!