用Python读取Dot文件

时间:2015-12-02 06:43:56

标签: python dot

我正在尝试阅读包含以下内容的点文件:

graph {
    KZJLCHYE -- DJTGWUZZ;
    PNLWKOXF -- BFSIOMPY;
    ...
}

但是当我尝试读取点文件时,我得到了" UnicodeDecodeError:' utf-8'编解码器不能解码位置0中的字节0xd0:无效的连续字节"。有没有办法只使用标准库在Python中读取点文件的内容?

2 个答案:

答案 0 :(得分:1)

文本文件的编码是一个永远无法完全解决的模糊主题。你需要猜测编码,或者手上有一个损坏的(或二进制)文件:

  1. 要猜测编码,请尝试在任何高级文本编辑器中打开它,看看它是否为您猜测编码和/或突出显示有问题的字符。

  2. 如果你不关心pos 0中的坏字符,你可以指示python忽略它。请参阅Python3手册:open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) - 只需设置errors='ignore' Python3比python2更好地处理编码,所以如果你提到你正在使用哪个版本,它会有所帮助。

  3. 将文件作为二进制流读取,并在将其转换为stropen(file, 'rb')时处理错误字符。同样,你的解码选项取决于python版本,所以我不能进一步详细说明。

答案 1 :(得分:0)

要忽略文件中的unicode字符,您可以

var = unicode(var, errors='ignore')