'print' 出力をファイルにリダイレクトする
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
あるいは、 1 回限りのスクリプト、'sys.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()
以来 Python 3.4 では、標準ライブラリはこのタスクを簡素化するコンテキスト マネージャーを提供します。
from contextlib import redirect_stdout with open('out.txt', 'w') as f: with redirect_stdout(f): print('data')
シェルからの外部リダイレクトも効果的なオプションです。
./script.py > out.txt
潜在的な問題をトラブルシューティングするには、次のことを考慮してください。スクリプト内の最初のファイル名をチェックしていますが、初期化されていない可能性があります。さらに、フォルダーが存在することを確認し、「bamfile」を出力すると、ファイル検出に関する問題を特定するのに役立ちます。コードを最適にわかりやすくするために、パスとファイル名の操作に「os.path.join」と「os.path.basename」を使用することをお勧めします。
以上がPython の「print」出力をファイルにリダイレクトするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。