Python 3.x 发生错误时的常规脚本编写最佳实践 p>所以我正在创建一个脚本,该脚本从STDIN中获取UTF-8字符并输出树所占的位数+字符的哈夫曼树+霍夫曼编码。我希望使用严格的编码,以便在出现意外字符时,将有一个UnicodeError输出到控制台(使用python 3)

Python 3.x 发生错误时的常规脚本编写最佳实践 p>所以我正在创建一个脚本,该脚本从STDIN中获取UTF-8字符并输出树所占的位数+字符的哈夫曼树+霍夫曼编码。我希望使用严格的编码,以便在出现意外字符时,将有一个UnicodeError输出到控制台(使用python 3),python-3.x,shell,scripting,Python 3.x,Shell,Scripting,我想知道在发生车祸时,客观上更好的做法是什么: 当且仅当不会遇到错误时才输出到标准输出 或者,将已经编码的内容输出到stdout,后面有一个UnicodeError(当然会打印到stderr) 或者,没关系 谢谢你的帮助铁人:这里是一个总结 这取决于: 如果您需要完整的数据文件来输出答案,这并不重要 如果您可以对输出进行流式处理(如文件转换),那么在遇到它时应该会出错 您好,我认为这取决于流式输出是否对您的命令有用。听起来只有在整个输入都经过验证的情况下,输出才有意义,所以也许可以将任何错误

我想知道在发生车祸时,客观上更好的做法是什么:

  • 当且仅当不会遇到错误时才输出到标准输出
  • 或者,将已经编码的内容输出到stdout,后面有一个UnicodeError(当然会打印到stderr)
  • 或者,没关系

    • 谢谢你的帮助铁人:这里是一个总结

      这取决于:

      • 如果您需要完整的数据文件来输出答案,这并不重要
      • 如果您可以对输出进行流式处理(如文件转换),那么在遇到它时应该会出错

      您好,我认为这取决于流式输出是否对您的命令有用。听起来只有在整个输入都经过验证的情况下,输出才有意义,所以也许可以将任何错误打印到
      stderr
      ,否则将结果打印到
      stdout
      。您能举一个需要流式输出的问题的例子吗?例如,如果您正在输出大量数据(例如将文件从一种格式转换为另一种格式)消费者将在循环中读取和处理。。。这里听起来像是你在打印文件的一个小摘要,所以我不确定这是否适用。我明白了,谢谢你的建议!