Python コードの出力リダイレクト
クエリは、Python を使用して print ステートメントを指定されたテキスト ファイルにリダイレクトすることに重点を置いています。 sys.stdout 手法を使用しているにもかかわらず、ターゲット ファイルは空のままです。この記事は、問題を調査し、代替解決策を提供することを目的としています。
出力にファイル オブジェクトを利用する
最も簡単なアプローチには、ファイル オブジェクトに直接書き込む方法があります。
with open('out.txt', 'w') as f: print('Filename:', filename, file=f) # Python 3.x # print >> f, 'Filename:', filename # Python 2.x
リダイレクト標準出力
または、次のコードを使用して stdout リダイレクトを実現できます。
import sys orig_stdout = sys.stdout f = open('out.txt', 'w') sys.stdout = f for i in range(2): print('i = ', i) sys.stdout = orig_stdout f.close()
Standard Library Context Manager の使用
Python の場合3.4 以降では、専用のコンテキスト マネージャーを使用してこれを簡素化できます。プロセス:
from contextlib import redirect_stdout with open('out.txt', 'w') as f: with redirect_stdout(f): print('data')
外部出力リダイレクト
シェル経由で出力を外部にリダイレクトするもう 1 つの実行可能なオプション:
./script.py > out.txt
追加考慮事項
以上がPython の印刷出力をファイルにリダイレクトするにはどうすればよいですか?また、失敗する可能性があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。