ホームページ >バックエンド開発 >Python チュートリアル >Python の印刷出力をテキスト ファイルに適切にリダイレクトする方法

Python の印刷出力をテキスト ファイルに適切にリダイレクトする方法

Susan Sarandon
Susan Sarandonオリジナル
2024-11-27 19:43:14238ブラウズ

How to Properly Redirect Python Print Output to a Text File?

Python 出力をテキスト ファイルにリダイレクトする

Python を使用して印刷出力をテキスト ファイルにリダイレクトしようとすると、選択した形式の場合に問題が発生する可能性があります。このメソッドでは望ましい結果が得られません。

問題説明

次のコードは、sys.stdout を使用して出力をファイルにリダイレクトできません:

f = open('output.txt','w')
sys.stdout = f

path= '/home/xxx/nearline/bamfiles'
bamfiles = glob.glob(path + '/*.bam')

for bamfile in bamfiles:
    filename = bamfile.split('/')[-1]
    print 'Filename:', filename

解決策

sys の代わり.stdout の場合は、ファイル オブジェクトの使用を検討してください。印刷:

with open('out.txt', 'w') as f:
    print('Filename:', filename, file=f)  # Python 3.x

代替ソリューション

  • コンテキスト マネージャーを使用して出力をリダイレクトします:
from contextlib import redirect_stdout

with open('out.txt', 'w') as f:
    with redirect_stdout(f):
        print('data')
  • 出力を外部にリダイレクトします。シェル:
./script.py > out.txt

追加の考慮事項

  • glob 関数が目的のファイルを見つけていることを確認してください。
  • 適切に操作してくださいos.path.join を使用したファイル パスとos.path.basename.

以上がPython の印刷出力をテキスト ファイルに適切にリダイレクトする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。