有没有简单的方法来打印 Unix 风格的错误信息?
Is there an easy way to print Unix-style error messages?
我想打印脚本中的基本错误消息。它们应该有脚本的名称(即 sys.argv[0]
),然后是消息,并且应该被打印到 stderr。有使用标准库的简单方法吗?
我写了下面的内容(受 this related answer 启发)并将它放在自己的模块中,这样我就可以将它导入我的脚本中,但我觉得有更好的方法。
from __future__ import print_function
import sys
def print_error(*args, **kwargs):
"""Print script name and anything else to stderr."""
print_stderr(sys.argv[0] + ':', *args, file=sys.stderr, **kwargs)
最简单的方法是使用logging
。先将其格式设置为'%(pathname)s: %(message)s'
,然后使用logging.error()
打印。例如:
# Setup
import logging
logging.basicConfig(format='%(pathname)s: %(message)s')
# Print error
logging.error('Test error message')
用法:
$ python3 test.py
test.py: Test error message
$ python3 ~/test.py
/home/wja/test.py: Test error message
有关 pathname
和其他可用信息的详细信息,请参阅 LogRecord attributes。
我想打印脚本中的基本错误消息。它们应该有脚本的名称(即 sys.argv[0]
),然后是消息,并且应该被打印到 stderr。有使用标准库的简单方法吗?
我写了下面的内容(受 this related answer 启发)并将它放在自己的模块中,这样我就可以将它导入我的脚本中,但我觉得有更好的方法。
from __future__ import print_function
import sys
def print_error(*args, **kwargs):
"""Print script name and anything else to stderr."""
print_stderr(sys.argv[0] + ':', *args, file=sys.stderr, **kwargs)
最简单的方法是使用logging
。先将其格式设置为'%(pathname)s: %(message)s'
,然后使用logging.error()
打印。例如:
# Setup
import logging
logging.basicConfig(format='%(pathname)s: %(message)s')
# Print error
logging.error('Test error message')
用法:
$ python3 test.py
test.py: Test error message
$ python3 ~/test.py
/home/wja/test.py: Test error message
有关 pathname
和其他可用信息的详细信息,请参阅 LogRecord attributes。