尝试将命令行输出保存到文件时出错

2023-12-04

我正在运行一个 python 工具并尝试将其输出保存到文件中。如果我不将输出保存到文件中,该工具将运行得很好。但是当我尝试将输出保存到文件时,它会抛出以下错误并中断程序:

  File "./androdiff.py", line 118, in <module>
main(options, arguments)
  File "./androdiff.py", line 94, in main
ddm.show()
  File "./elsim/elsim/elsim_dalvik.py", line 772, in show
self.eld.show()
  File "./elsim/elsim/elsim.py", line 435, in show
i.show()
  File "./elsim/elsim/elsim_dalvik.py", line 688, in show
  print hex(self.bb.bb.start + self.offset), self.pos_instruction, self.ins.get_name(), self.ins.show_buff( self.bb.bb.start + self.offset )
  UnicodeEncodeError: 'ascii' codec can't encode character u'\u0111' in position 35: ordinal not in range(128)

我试过了command |less , command > output and command | tee output,他们都会抛出这样的错误。

请帮助解决问题。

Thanks!


Set PYTHONIOENCODING如果无法自动确定标准输出字符编码,例如,当输出重定向到文件时,请显式设置环境变量:

$ PYTHONIOENCODING=utf-8 python app.py > file

如果输出可能会发送到终端,请勿在脚本中对字符编码进行硬编码;相反,打印 Unicode 字符串并让用户配置他们的环境。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试将命令行输出保存到文件时出错 的相关文章

随机推荐