我下载了“百万富翁”文件_数字.txt'从这里开始:
https://github.com/ehmatthes/pcc/blob/master/chapter_10/pi_million_digits.txt
然后我用这个代码打开并阅读它:
filename = 'pi_million_digits.txt'
with open(filename) as file_object:
lines = file_object.readlines()
pi_string = ''
for line in lines:
pi_string += line.strip()
print(pi_string[:52] + "...")
print(len(pi_string))
然而,所产生的输出是正确的,除了前面有同样奇怪的符号:“è?3.141…”
是什么导致了这些奇怪的符号?我正在剥线,所以我希望这样的符号会被删除。在
看起来您正在打开一个使用ISO-8859-1编码的UTF-8编码的文件Byte Order Mark(大概是因为这是操作系统上的默认编码)。在
如果您以字节形式打开它并读取第一行,您应该会看到如下所示:
…其中
^{pr2}$\xef\xbb\xbf
是BOM的UTF-8编码。打开为ISO-8859-1,它看起来像是:…并将其作为UTF-8打开,将显示实际的BOM字符U+FEFF:
要去除标记,请使用特殊编码
utf-8-sig
:上面的例子中使用
next()
只是为了演示。在您的代码中,您只需要将encoding
参数添加到open()
行中,例如相关问题 更多 >
编程相关推荐