0

我需要读取具有给定行号的 GB2312 编码文件中的指定行。很多人提到linecache.getline(file_path,line_no)的是正确答案。但是 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 72: invalid continuation byte当我尝试读取 GB2312 文件时它出现了,同时使用 utf-8 文件。

但是,在 Python 文档中,linecache.getline()我没有找到任何指定编码方法的参数。

所以我想知道是否linecache.getline()能够读取非 utf-8 文件?如果是,如何?

这是一个最小的可重现示例。

import linecache
print(linecache.getline("test.txt",1))

将以下带有中文字符的文本存储为test.txt。然后使用 vs-code 或 notpad++ 将其转换为 GB2312 编码。

First line 第一行
Second line 第二行
4

0 回答 0