有没有办法为python读取和写入的所有文件设置编码

时间:2010-04-21 09:33:28

标签: python encoding file-io

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

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

1 个答案:

答案 0 :(得分:4)

在以特定编码方式读取和写入文件时,Python并不真正倾听环境。在编写写入stdout的unicode时,它只监听环境,如果 stdout连接到终端。

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

在Python 3.x中,您以二进制模式打开文件,在这种情况下,您获得bytes,或者在文本模式下打开文件,在这种情况下,您应该像{{1}一样指定编码在Python 2.x中。

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