【发布时间】:2010-04-21 09:33:27
【问题描述】:
我在 python 中有一个脚本,需要读取 iso-8859-1 文件并写入该编码。
现在我在所有语言环境都设置为 utf-8 的环境中运行脚本。有没有办法在我的 python 脚本中定义所有文件访问都必须使用 iso-8859-1 编码?
【问题讨论】:
-
支票/支票在邮件中,当然我早上还是会爱你,而且我的数据是用 ISO-8859-1 编码的,而不是 cp1252。
我在 python 中有一个脚本,需要读取 iso-8859-1 文件并写入该编码。
现在我在所有语言环境都设置为 utf-8 的环境中运行脚本。有没有办法在我的 python 脚本中定义所有文件访问都必须使用 iso-8859-1 编码?
【问题讨论】:
在以特定编码读取和写入文件时,Python 并没有真正倾听环境。它只在编码写入标准输出的 unicode 时才监听环境,如果标准输出连接到终端。
在 Python 2.x 中读写文件时,默认处理的是字节串(str 类型)。它们是编码数据。您必须对您手动读取的数据进行解码,并对您想要写入的内容进行编码。或者您可以使用codecs.open() 打开文件,它会为您进行编码。
在 Python 3.x 中,您可以以二进制模式打开文件,在这种情况下会得到 bytes,或者以文本模式打开文件,在这种情况下,您应该像 Python 中的 codecs.open() 一样指定编码2.x.
这些都不受环境变量的影响;您要么读取字节,要么指定编码。
【讨论】: