コンソール出力をファイルにリダイレクトする
Python では、stdout ストリームをファイルにリダイレクトすることで、開発者は印刷出力をキャプチャして保存できます。これを実現するには、sys.stdout 属性を操作します。ただし、元の質問で概説されているアプローチでは望ましい出力が生成されないという最近の問題が報告されています。
問題の解決策
問題は、間違ったものにあります。印刷時の file= パラメーターの使用法。 Python バージョン 3.x 以降では、正しい構文は print('Filename:', filename, file=f) です。 Python 2.x の場合は、 print >> を使用します。 f, 'Filename:', filename.
または、with ステートメントを使用して標準出力をより簡潔にリダイレクトすることもできます。
with open('output.txt', 'w') as f: with redirect_stdout(f): print('Filename:', filename)
追加のメソッド
sys.stdout を使用する以外にも、リダイレクトする方法があります出力:
ファイル オブジェクトの使用: 以下に示すように、ファイル オブジェクトに直接書き込みます:
with open('out.txt', 'w') as f: print('Filename:', filename, file=f)
外部シェル リダイレクト: > を使用します。出力をリダイレクトするシェル内の演算子:
./script.py > out.txt
トラブルシューティング
提供されたスクリプトで、次のことを確認してください:
改善されました結果
修正された構文とファイル オブジェクトを使用すると、予期される出力は次のようになります。
Filename: ERR001268.bam Readlines finished! Mean: 233 SD: 10 Interval is: (213, 252)
この更新されたバージョンのスクリプトは出力をキャプチャし、出力にリダイレクトします。 txt ファイル。
以上がPython でコンソール出力をファイルにリダイレクトするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。