我这样打开我的文件:
with open(sourceFileName, 'r', encoding='ISO-8859-1') as sourceFile:
但是,当我
^{pr2}$我有个例外
"UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb4 in position 169:
invalid start byte
这是因为(我认为)linecache.getline
返回一个str()(它没有decode()
方法)。在
我的脚本必须能够支持unicode,所以我不能简单地将输入文件转换成UTF-8。在
linecache
采用文件名,而不是文件对象,如您的用法所示。它没有编码的规定。同样来自documentation:这意味着它主要用于Python源代码。事实证明,如果文件有一个Python源文件编码注释,那么它可以工作:
在输入文件
在测试.py
^{pr2}$输出
^{3}$所以
linecache
可能不是解决问题的方法。相反,请按所示打开文件,并可能自己缓存这些行:如果您不想读取整个文件,也可以在读取时将行追加到列表中,类似于
linecache
。在相关问题 更多 >
编程相关推荐