我有一个utf-16
文件,我正在尝试读取文件的后几行。这是我现在拥有的:
def get_last_n_lines(self, n, file=None):
'''
Sorted from the bottom to the top.
'''
file = file or self.file
s = subprocess.check_output(['tail', '-%s' % str(n), file]).decode('utf-8')
return
但是,出现以下错误:
UnicodeDecodeError:'utf-8'编解码器无法解码位置4607的字节0xae:无效的起始字节
即使我.decode('utf-16')
也给我一个错误。从tail命令获取文件的最后100行的正确方法是什么?
答案 0 :(得分:2)
可行的是在解码方法中添加更通用的unicode编码:
> s = subprocess.check_output(['tail', '-%s' % str(n), file]).decode('unicode_escape')
答案 1 :(得分:1)
您可以添加encoding =“ 437”或encoding =“ 850”。