ホームページ >バックエンド開発 >Python チュートリアル >Python の「subprocess」モジュールを使用して、外部コマンドの出力をファイルにリダイレクトするにはどうすればよいですか?

Python の「subprocess」モジュールを使用して、外部コマンドの出力をファイルにリダイレクトするにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-29 00:50:10792ブラウズ

How do I redirect the output of an external command to a file using the `subprocess` module in Python?

Python のサブプロセスによる出力のリダイレクト

Python では、サブプロセス モジュールを使用して外部コマンドを呼び出すことができます。コマンドを実行するとき、出力をファイルにリダイレクトすることが望ましい場合がよくあります。

次のコマンド ライン コマンドを考えてみましょう:

cat file1 file2 file3 > myfile

このコマンドは、ファイル file1、file2、および file3 を連結し、ファイルをリダイレクトします。 myfile ファイルに出力します。 Python で同様の機能を実現するには、最初に次のことを試みることができます:

import subprocess, shlex
my_cmd = 'cat file1 file2 file3 > myfile'
args = shlex.split(my_cmd)
subprocess.call(args)  # Spits output in the window from which Python was called

ただし、このアプローチでは出力がファイルにリダイレクトされません。代わりに、Python プログラムが呼び出されたウィンドウに出力します。

Python 3.5 ソリューション

出力を適切にリダイレクトするには、stdout のオープン ファイル ハンドルを提供します。 subprocess.run の引数:

input_files = ['file1', 'file2', 'file3']
my_cmd = ['cat'] + input_files
with open('myfile', "w") as outfile:
    subprocess.run(my_cmd, stdout=outfile)

このソリューションは、出力を myfile ファイルに効果的にリダイレクトします。 cat のような外部コマンドは必要ありません。

以上がPython の「subprocess」モジュールを使用して、外部コマンドの出力をファイルにリダイレクトするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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