Python读取由另一个进程打开的文件导致UnicodeDecodeError

时间:2012-05-04 20:03:22

标签: python file encoding

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

Id est:

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字符!

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

感谢任何帮助!

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

1 个答案:

答案 0 :(得分:0)

哦,我明白了。

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

感谢您的帮助!