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