我需要读取具有给定行号的 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 第二行