gpt4 book ai didi

python - 可以使用 latin-1 编码写入标准输出但不能写入文件 (Python 2.6)

转载 作者:太空宇宙 更新时间:2023-11-03 11:08:21 25 4
gpt4 key购买 nike

<分区>

我有 unicode 数据,希望将其写入文件。我正在使用 python 2.6。我能够打印编码值,但无法将其写入文件。环境的默认编码是 UTF-8。也尝试使用编解码器,但也没有运气。这是我正在使用的示例代码片段。

#!/usr/bin/python
import sys
import codecs
import csv

sh = [u'T\xe9l\xe9vista S.A.', u'T\xe9l\xe9vista S.A.', 'Python']
print sys.stdout.encoding
f = codecs.open('listwrite.txt', 'w', encoding='latin-1')
for item in sh:
f.write(item)
f.close()

for i in sh:
print i.encode('latin-1')
#

输出:

UTF-8
Télévista S.A.
Télévista S.A.
Python

Contents of listwrite.txt
Télévista S.A.Télévista S.A.Python
#

如上所示,文件是以 UTF-8 编码而非 Latin-1 编码编写的。如何更改它并覆盖文件的默认编码。

编辑:2

此外,使用 csv 编写器写入会出现 UnicodeEncodeError:'ascii' 编解码器无法编码位置 1 中的字符 u'\xe9':序号不在范围内 (128)

代码如下:

#!/usr/bin/python
import sys
import codecs
import csv

sh = [u'T\xe9l\xe9vista S.A.', u'T\xe9l\xe9vista S.A.', 'Python']
print sys.stdout.encoding
c = csv.writer(codecs.open('listwrite.txt', 'w', encoding='latin-1'), quoting=csv.QUOTE_NONE)
c.writerow(sh)
f.close()

for i in sh:
print i.encode('latin-1')

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com