0

我正在尝试在编辑器(VIM)中打开的文件的内容。

身份证:

fileh = open( path, 'r' )
content = fileh.read()
fileh.close()

当文件在 VIM 中打开时,这会导致错误。如果 VIM 对文件持有排他锁,我可以理解这一点,但根据错误消息,情况似乎并非如此:

UnicodeDecodeError: 'ascii' codec can't decode byte 0x80 in position 16: ordinal not in range(128)

在我看来,VIM 在打开的文件中写入了一个非 ascii 字符!

使用或 utf-16 打开文件open( path, 'r', encoding='utf-8')似乎不起作用(发生 utf-8/utf-16 解码错误)。

任何帮助表示赞赏!

更新:当我在 Gedit 而不是 VIM 中打开文件时,不会发生此问题。当然这不是一个修复,所以我仍然需要找出问题所在。

4

1 回答 1

0

好的,我想通了。

问题不在于 python 无法解码我感兴趣的文件,而是 python 读取由 VIM 生成的 .swp 文件。我的程序没有正确过滤输入目录。

不过感谢您的帮助!

于 2012-05-15T19:01:16.117 回答