ホームページ > バックエンド開発 > Python チュートリアル > Python でサブプロセスを使用して出力をリダイレクトする方法は?

Python でサブプロセスを使用して出力をリダイレクトする方法は?

Patricia Arquette
リリース: 2024-11-17 18:20:02
オリジナル
250 人が閲覧しました

How to Redirect Output with Subprocess in Python?

Python の Subprocess を使用した出力のリダイレクト

subprocess モジュールを使用して Python でシェル コマンドを実行する場合、出力をリダイレクトする方法を知ることが重要です。一般的なシナリオの 1 つは、コマンドの標準出力をファイルにリダイレクトすることです。この記事では、出力リダイレクトを実現するための Python のアプローチを検討することで、このニーズに対処します。

提供された Python コード スニペットでは、ユーザーは subprocess.call を使用して、コマンドを分割することで cat コマンドの出力をファイルにリダイレクトしようとしています。 shlex を使用して引数に組み込みます。ただし、出力は引き続きコンソールに表示されます。

Python 3.5 以降で出力を適切にリダイレクトするには、subprocess.run の stdout 引数を使用できます。この引数は、開いているファイル ハンドルを値として受け入れます。これが出力の宛先になります。以下に例を示します。

# Use a list of args instead of a string
input_files = ['file1', 'file2', 'file3']
my_cmd = ['cat'] + input_files
with open('myfile', "w") as outfile:
    subprocess.run(my_cmd, stdout=outfile)
ログイン後にコピー

このコードでは、実行されるコマンドは引数のリストに分割され、出力は「myfile」という名前のファイルにリダイレクトされます。 with ステートメントにより、ファイルが適切に開かれ、書き込まれ、閉じられることが保証されます。

この目的で cat などの外部コマンドを使用する必要がないことに注意してください。 Python には、ファイルの読み取りと書き込みのための組み込み関数があり、直接使用できます。

with open('myfile', "w") as outfile:
    outfile.write(open('file1').read())
    outfile.write(open('file2').read())
    outfile.write(open('file3').read())
ログイン後にコピー

サブプロセスで出力を適切にリダイレクトする方法を理解するか、Python のファイル処理機能を利用することで、プロセスのフローを効果的に管理できます。 Python スクリプト内の情報。

以上がPython でサブプロセスを使用して出力をリダイレクトする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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