2024-09-29 22:31:08 发布
网友
我试图读取一个包含以下内容的点文件:
graph { KZJLCHYE -- DJTGWUZZ; PNLWKOXF -- BFSIOMPY; ... }
但是当我试图读取点文件时,我得到“UnicodeDecodeError:'utf-8'codec无法解码0位置的字节0xd0:无效的延续字节”。有没有一种方法可以只使用标准库来读取Python中dot文件的内容?在
要忽略文件中的unicode字符,可以执行以下操作:
var = unicode(var, errors='ignore')
文本文件的编码是一个永远无法完全解决的模糊问题。您要么需要猜测编码,要么手上有一个损坏的(或二进制)文件:
要猜测编码,请尝试在任何高级文本编辑器中打开它,查看它是否为您猜测编码和/或突出显示有问题的字符。
如果不关心pos0处的坏字符,可以指示python忽略它。参见Python3手册:open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)只需设置errors='ignore' Python3比python2更好地处理编码,因此如果您提到您使用的是哪个版本,它会有所帮助。
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
errors='ignore'
将文件作为二进制流读取,并在将其转换为str:open(file, 'rb')时处理错误字符。同样,您的解码选项取决于python版本,因此我无法进一步阐述。
str
open(file, 'rb')
要忽略文件中的unicode字符,可以执行以下操作:
文本文件的编码是一个永远无法完全解决的模糊问题。您要么需要猜测编码,要么手上有一个损坏的(或二进制)文件:
要猜测编码,请尝试在任何高级文本编辑器中打开它,查看它是否为您猜测编码和/或突出显示有问题的字符。
如果不关心pos0处的坏字符,可以指示python忽略它。参见Python3手册:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
只需设置errors='ignore'
Python3比python2更好地处理编码,因此如果您提到您使用的是哪个版本,它会有所帮助。将文件作为二进制流读取,并在将其转换为
str
:open(file, 'rb')
时处理错误字符。同样,您的解码选项取决于python版本,因此我无法进一步阐述。相关问题 更多 >
编程相关推荐