1

現在、stdoutとstderrに情報を印刷できますが、進行状況に関する情報を印刷して、stdout、stderrなどに印刷したいと思います。これは可能ですか?

4

3 に答える 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 に答える