【问题标题】:Is there a way to set the encoding for all files read and written by python有没有办法为python读写的所有文件设置编码
【发布时间】:2010-04-21 09:33:27
【问题描述】:

我在 python 中有一个脚本,需要读取 iso-8859-1 文件并写入该编码。

现在我在所有语言环境都设置为 utf-8 的环境中运行脚本。有没有办法在我的 python 脚本中定义所有文件访问都必须使用 iso-8859-1 编码?

【问题讨论】:

  • 支票/支票在邮件中,当然我早上还是会爱你,而且我的数据是用 ISO-8859-1 编码的,而不是 cp1252。

标签: python encoding file-io


【解决方案1】:

在以特定编码读取和写入文件时,Python 并没有真正倾听环境。它只在编码写入标准输出的 unicode 时才监听环境,如果标准输出连接到终端。

在 Python 2.x 中读写文件时,默认处理的是字节串(str 类型)。它们是编码数据。您必须对您手动读取的数据进行解码,并对您想要写入的内容进行编码。或者您可以使用codecs.open() 打开文件,它会为您进行编码。

在 Python 3.x 中,您可以以二进制模式打开文件,在这种情况下会得到 bytes,或者以文本模式打开文件,在这种情况下,您应该像 Python 中的 codecs.open() 一样指定编码2.x.

这些都不受环境变量的影响;您要么读取字节,要么指定编码。

【讨论】:

    猜你喜欢
    • 2023-02-15
    • 2020-06-27
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 2021-02-23
    • 2020-04-06
    • 2013-04-16
    • 2021-12-05
    相关资源
    最近更新 更多