如何读取中文txt文件(Python)

6

我有一个名为"chinchars.txt"的文本文件。里面只有一行,包含两个字符:

节日

如何读取这个文本文件并返回这两个字符呢?使用以下代码:

inputFile = open('chinchars.txt').readlines()

它输出以下错误:

UnicodeDecodeError: 'charmap' codec can't decode byte 0x8f in position 
18: character maps to <undefined>

我认为我需要以某种方式“解码”字符。这应该如何完成?

对我来说,它完美地工作。 - Mehrdad Pedramfar
错误出现在你代码的其他部分。 - Mehrdad Pedramfar
请包含完整的错误信息并说明您使用的Python版本(2.7或3.x)。 - DYZ
可能是重复的问题如何读取中文文件? - Rahul Goswami
你需要识别文本文件所使用的编码,并将其作为 open() 函数的 encoding 参数传递。目前有几种汉字编码在使用中。 - Klaus D.
我正在使用Python 3.6版本。 - Bryan Thai
1个回答

3

试试这个,它可能会对你有帮助:

inputFile = open('chinchars.txt', encoding="utf8").readlines()

请注意,最好使用with来打开文件。像这样:
with open('chinchars.txt', encoding="utf8") as f:
    inp = f.readlines()

@DyZ 是的,这就是为什么我写下这句话可能会帮助你的原因。 - Mehrdad Pedramfar
2
@DyZ 我相当确定在Python 3中,文本流(sys.std*open)的默认值取决于语言环境/平台。编码仅对源编码和str.encode/decode使用UTF-8作为默认值。 - lenz
@Elliptica,看一下这个链接,它会回答你的问题:https://stackoverflow.com/questions/57662894/what-is-the-difference-between-read-and-readline-in-python#:~:text=The%20main%20difference%20is%20that,you%20specify%20in%20the%20parenthesis. - Mehrdad Pedramfar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接