我在python中有一个脚本需要读取iso-8859-1文件并写入该编码。
现在我在所有语言环境设置为utf-8的环境中运行脚本。有没有办法在我的python脚本中定义所有文件访问都必须使用iso-8859-1编码?
答案 0 :(得分:4)
在以特定编码方式读取和写入文件时,Python并不真正倾听环境。在编写写入stdout的unicode时,它只监听环境,如果 stdout连接到终端。
在Python 2.x中读取和写入文件时,默认情况下处理字节串(str
类型)。它们是编码数据。您必须解码手工读取的数据,并对要编写的内容进行编码。或者您可以使用codecs.open()
打开文件,这些文件将为您进行编码。
在Python 3.x中,您以二进制模式打开文件,在这种情况下,您获得bytes
,或者在文本模式下打开文件,在这种情况下,您应该像{{1}一样指定编码在Python 2.x中。
这些都不受环境变量的影响;你要么读取字节,要么指定编码。