Python从本地文件读取unicode
我正在尝试读取本地的一些unicode文件。使用列表时如何读取unicode文件?我已经阅读了python文档和大量的stackoverflow问答,它们回答了我的许多其他问题,但我找不到这个问题的答案 感谢您的帮助Python从本地文件读取unicode,python,python-2.7,unicode,Python,Python 2.7,Unicode,我正在尝试读取本地的一些unicode文件。使用列表时如何读取unicode文件?我已经阅读了python文档和大量的stackoverflow问答,它们回答了我的许多其他问题,但我找不到这个问题的答案 感谢您的帮助 编辑:对不起,我的文件是utf-8格式的 您可以使用打开UTF-8编码的文件 import codecs with codecs.open("myutf8file.txt", encoding="utf-8-sig") as infile: for line in infi
编辑:对不起,我的文件是utf-8格式的 您可以使用打开UTF-8编码的文件
import codecs
with codecs.open("myutf8file.txt", encoding="utf-8-sig") as infile:
for line in infile:
# do something with line
请注意,codecs.open()
不会将\r\n
转换为\n
,因此,如果您使用的是Windows文件,您需要考虑到这一点
utf-8-sig
编解码器将读取带或不带的utf-8文件(如果有,则将其剥离)。在编写时,您应该使用utf-8
作为编解码器,因为。您当前的代码是什么?没有“Unicode文件”这样的东西。有几种编码可用于将Unicode字符串编码为字节,其中最常见的是utf-8
。这是你的文件编码吗?如果没有,哪一个是?您的文件是否有?是的,我的文件是UTF-8格式的。如果infle.read(len(codecs.BOM\u UTF8)),则很容易忽略输入文件开头的任何UTF-8 BOM,并使用codecs.BOM_UTF8:infle.seek(0)
跟随with
语句。@martineau:使用utf-8-sig
编解码器可能更容易(但你不应该将其用于写作,因此我的答案中没有包含它)。然后,这比我想象的还要容易。你似乎过于担心写文件,因为在OP的问题中甚至没有提到它。@martineau:我想你是对的。嗯,在某一点上,程序会输出一些东西,我猜这与程序读取的文件有关。我已经编辑了我的答案。谢谢你的帮助,蒂姆·皮埃茨克和@martineau。