Python readline无法使用编解码器

2024-04-20 05:29:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试打开、打印和读取包含特殊字符(如§)的文本文件。下面是我正在运行的代码:

    import codecs
    f = codecs.open('sample_text.txt', mode='r', encoding='utf_8')
    print f.readline()

前两行行有效,但第三行不行。错误代码显示: 回溯(最近一次呼叫):

^{pr2}$

有什么想法吗?请让我知道,如果我可以澄清什么或补充更多的细节。非常感谢你!在


Tags: sample代码textimporttxtreadlinemodeopen
2条回答

要扩展注释者所说的内容,您需要找出文件的编码。我知道最简单的方法是:

  1. 在Firefox中打开文件。在
  2. 右键单击页面并选择“查看页面信息”
  3. 看看“文本编码”是什么。在
  4. 然后,您可以检查codecs documentation中要使用的编解码器,而不是f = codecs.open(...)行中的utf_8。在

步骤1-3的屏幕截图:

screenshot

看起来你在一台windows机器上,文本文件的编码可能与UTF-8不同,你可能想试试cp1252/ISO-8859-1解码bytestring,然后用UTF-8重新编码。在

您还可以在这里查看有关如何读取文件的最佳实践的建议-Difference between open and codecs.open in Python

相关问题 更多 >