我有一个 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' codec can't decode byte 0xae in position 4607: invalid start byte
即使我这样做 .decode('utf-16')
它也会给我一个错误。从 tail 命令获取文件最后 100 行的正确方法是什么?
最佳答案
有效的方法是在解码方法中添加更通用的 unicode 编码:
> s = subprocess.check_output(['tail', '-%s' % str(n), file]).decode('unicode_escape')
关于python - 获取文件的最后n行——解码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53879244/