Python 无法正确读取日志文件,除非我将其内容粘贴到新的文本文件中

标签 python

我正在使用 open() 读取日志文件,但我得到了奇怪的内容。如果我用Notepad++打开日志文件,复制内容并将其粘贴到新文件中,另存为.txt文件,open()可以读取正确的内容。 代码是:

with open(a_file, 'r') as my_file:
    for line in my_file:
        line_number += 1
        if line_number == 1060 or line_number == 1061:
            print(line)

我尝试了很多方法:

  1. cat 日志文件并重定向到新的文本文件,没有帮助
  2. 在 Notepad++ 中打开日志文件,另存为...新的文本文件,没有帮助
  3. 使用linux tail命令,将输出重定向到新的文本文件,没有帮助
  4. 使用python编解码器将其读取为utf-8,出现错误“python编解码器无法解码位置0中的字节0xff:无效的起始字节”
  5. 在 Notepad++ 中打开日志文件,复制其内容,粘贴到新文件中,保存到新的文本文件,一切正常。

最佳答案

您无法读取该文件,因为它是用 UTF-16 编码的,您可以通过第一个字符来判断 BOM 是哪个。 。 0xffUTF-16 BOM 的一部分。因此,阅读时只需添加 encoding='utf16' (或在 python2 中使用 codecs.openutf16)

关于Python 无法正确读取日志文件,除非我将其内容粘贴到新的文本文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43648786/

相关文章:

python - `getwch` 返回的键码是什么?

许多参数的python线程应用程序错误

python - 如何配置python程序连接QUEUE MANAGE?

python - 处理浮点: With numpy python in particular

Python:拆分字符串,尊重并保留引号

python - Flask 应用程序的 Celery 配置

python - 如何解密 django 哈希 sha256 密码?

python - 如何制作 tkinter 条目小部件?

python - 在 Tkinter 中单击按钮时显示 .jpg 图像?

python - 为什么在 Python OOP 中使用 Getters/Accessors 是(或不是)好的做法?