ホームページ > バックエンド開発 > Python チュートリアル > Python の「print」出力をファイルにリダイレクトするにはどうすればよいですか?

Python の「print」出力をファイルにリダイレクトするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-01 07:39:11
オリジナル
169 人が閲覧しました

How Can I Redirect Python's `print` Output to a File?

'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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート