現在、stdoutとstderrに情報を印刷できますが、進行状況に関する情報を印刷して、stdout、stderrなどに印刷したいと思います。これは可能ですか?
3 に答える
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')
于 2012-08-26T16:24:52.623 に答える
1
コンソールへの出力は、私が知る限り、stdoutとstderrを介してのみ行われます。
ファイルに印刷しますか?それならこれを行うことができます
with open('outfile.txt', 'w') as f:
f.write('this is a test')
または、次を使用したい場合print
:
print >> f, 'this is a test'
上記の例では、という名前のファイルがriteアクセスoutfile.txt
用に開かれています。w
これは、すでに存在するすべてのデータが、そこに書き込まれた新しいデータによって消去されることを意味します。追加したい場合は、ファイルをa
モードで開きます。詳細については、open()のドキュメントを参照してください。
開いているファイルは閉じる必要があります。with
コンストラクトを使用してそれを処理します(また、例外が発生した場合はファイルを閉じます)。
于 2012-08-26T16:22:02.133 に答える
-1
write()という名前のメソッドを使用してクラスを作成すると、次を使用できます。
print 'text' >> Printer()
'text'をPrinter()オブジェクト(python 2.x)に出力するか、
print('text', file=Printer())
Python3.xで
于 2012-08-26T16:21:41.280 に答える