目前,我可以将信息打印到stdout以及stderr,但我想打印有关进度的信息并将其打印到stdout,stderr和其他地方。这可能吗?
答案 0 :(得分:3)
您可以使用logging
模块将信息同时记录到不同的地方:
import logging
logger = logging.getLogger('your_logger')
logger.setLevel(logging.INFO)
file_handler = logging.FileHandler('errors.log')
file_handler.setLevel(logging.ERROR)
logger.addHandler(file_handler)
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
logger.addHandler(stream_handler)
logger.warning('I am a warning')
logger.error('I will be printed, but written to the log file as well')
logger.info('I am an info message')
答案 1 :(得分:1)
据我所知,仅通过stdout和stderr输出到控制台。
是否要打印到文件,然后就可以执行此操作
with open('outfile.txt', 'w') as f:
f.write('this is a test')
或者如果您更喜欢使用print
:
print >> f, 'this is a test'
在上面的示例中,为outfile.txt
rite访问打开了名为w
的文件。这意味着已经存在的任何数据都将被写入其中的新数据消除。如果您想追加,请以a
模式打开文件。有关详细信息,请参阅documentation for open()。
需要关闭打开的文件,使用with
构造为您处理(并在遇到异常时关闭文件)。
答案 2 :(得分:-1)
使用名为write()的方法创建一个类,然后可以使用
print 'text' >> Printer()
将'text'打印到Printer()对象(python 2.x)或
print('text', file=Printer())
在python 3.x
中