gpt4 book ai didi

python - 我可以将控制台的 unicode 输出直接重定向到文件中吗?

转载 作者:IT老高 更新时间:2023-10-28 22:03:05 24 4
gpt4 key购买 nike

我有一个将 unicode 输出到控制台的 python 脚本,我想将它重定向到一个文件。显然,python 中的重定向过程涉及将输出转换为字符串,因此我收到有关无法解码 unicode 字符的错误。

那么,有什么方法可以重定向到以 UTF-8 编码的文件?

最佳答案

打印到控制台时,Python 会查看 sys.stdout.encoding 以确定用于在打印之前对 unicode 对象进行编码的编码。

将输出重定向到文件时,sys.stdout.encoding 为 None,因此 Python2 默认为 ascii 编码。 (相比之下,Python3 默认为 utf-8。)这通常会导致打印 unicode 时出现异常。

您可以通过在打印前自己显式编码 unicode 来避免错误:

print (unicode_obj.encode('utf-8'))

或者您可以重新定义 sys.stdout 以便所有输出都以 utf-8 编码:

import sys
import codecs
sys.stdout=codecs.getwriter('utf-8')(sys.stdout)
print(unicode_obj)

关于python - 我可以将控制台的 unicode 输出直接重定向到文件中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5530708/

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