【问题标题】:How to avoid encoding parameter when opening file in Python3在Python3中打开文件时如何避免编码参数
【发布时间】:2016-10-07 15:05:13
【问题描述】:

当我在 Windows 设备上处理 .txt 文件时,我必须另存为:ANSI、Unicode、Unicode big endian 或 UTF-8。当我在 OSX 设备上运行 Python3 并尝试导入和读取 .txt 文件时,我必须执行以下操作:

with open('ships.txt', 'r', encoding='utf-8') as f:
    for line in f.readlines():
        print(line)

在 Windows 设备上我应该使用特定格式对 .txt 文件进行编码以避免在 Python 中打开文件时添加编码参数吗?

【问题讨论】:

  • 您可以使用编码猜测器,或将 BOM 添加到要读取的文件中
  • @Ni。添加 BOM 将无济于事。 open 不使用它们进行编码检测。
  • @Mark Tolonen 昨天是的,但我认为encodings 库可能有一个使用 BOM 的开放函数

标签: python unicode encoding python-import


【解决方案1】:

在您的 OSX 设备上致电 locale.getpreferredencoding(False)。这是用于在该设备上读取文件的默认编码。在 Windows 上保存该编码,您无需在 OSX 设备上指定编码。

但正如Zen of Python 所说,“显式优于隐式”。既然知道编码,为什么不指定呢?

【讨论】:

    猜你喜欢
    • 2012-12-06
    • 2018-11-19
    • 2019-07-29
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多