我在写一个小应用程序,我需要退出程序多次。如何退出程序:sys.stderr.write()或打印
我应该使用:
sys.stderr.write('Ok quitting')
sys.exit(1)
或者我应该只是做一个:
print 'Error!'
sys.exit(1)
哪个更好,为什么?请注意,我需要做很多事情。该计划应彻底退出。
我在写一个小应用程序,我需要退出程序多次。如何退出程序:sys.stderr.write()或打印
我应该使用:
sys.stderr.write('Ok quitting')
sys.exit(1)
或者我应该只是做一个:
print 'Error!'
sys.exit(1)
哪个更好,为什么?请注意,我需要做很多事情。该计划应彻底退出。
sys.exit('Error!')
注意:如果对象的另一种类型的传递
, 无等同于传递零, 任何其他对象打印到 sys.stderr并导致退出代码 为1.特别是,sys.exit(“some 错误消息“)是一种在发生错误时退出 程序的快速方法。
如果是错误信息,通常应该输入stderr
- 但是否需要这取决于您的使用情况。如果您希望用户重定向stdin
,stderr
和stdout
,例如,从其他工具运行程序时,应确保将状态信息和错误消息干净地分开。
如果只是你使用该程序,你可能不需要打扰。在这种情况下,您可能只会引发异常,程序将自行终止。
顺便说一句,你可以从the docs做
print >>sys.stderr, "fatal error" # Python 2.x
print("fatal error", file=sys.stderr) # Python 3.x
它们是显示消息的两种不同方式。
print
一般去sys.stdout
,你知道sys.stderr
是怎么回事。值得了解stdin, stdout, and stderr之间的差异。
stdout
应该用于正常程序输出,而stderr
应该只保留用于错误消息(异常程序执行)。有用于拆分这些流的实用程序,它允许您的代码的用户区分正常输出和错误。
print
可以打印任何类文件对象上,包括sys.stderr
:
print >> sys.stderr, 'My error message'
使用sys.stderr
错误的代替sys.stdout的的优点是:
stdout
一个文件,他们仍然在屏幕上看到错误。sys.stderr
被重定向到日志文件,那么在错误记录之前程序崩溃的可能性就会降低。值得一提的是,有可以提供关闭消息的第三种方式:
sys.exit('My error message')
这将消息发送到stderr
并退出。
谢谢你的回答。 – user225312 2010-06-01 13:29:24