python中用open语句打开文件时碰到如下问题,:
a=open(r"C:\Users\zhaoyang\Desktop\1.txt","r")
b=a.read()
print(b)
待打开的文件我命名为1,类型为txt。我发现当文件里面是汉字时,会报错如下:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 2: illegal multibyte sequence
但是当我把文件里的汉字改为英文字母时,可以正常打开文件。
表示很不理解为啥会这样。
还有,我用这个程序去打开word文档(docx),发现不管word文档里是英文还是中文,都会报错如下:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa2 in position 50: illegal multibyte sequence
求各位告知一下原因和解决办法
改成这样open(r"C:\Users\zhaoyang\Desktop\1.txt","r", encoding=‘utf-8’)
首先通过记事本另存为将文件格式改为utf-8 然后python读取文件设置encoding=‘utf-8’ 如有帮助请采纳谢谢
word文件不是文本文件,不能用r打开,应该用二进制"b"打开。
给你找了一篇非常好的博客,你可以看看是否有帮助,链接:如何在Python中使用“ with open”打开多个文件?