1. ホーム
  2. python

Python スクリプトの中でシェルコマンドを起動し、終了を待ってスクリプトに戻る

2023-09-19 18:33:14

質問

私は、ディレクトリ内のすべてのファイルに対してシェルコマンドを起動する必要があるPythonスクリプトを持っています。

import os

files = os.listdir(".")
for f in files:
    os.execlp("myscript", "myscript", f)

これは最初のファイルではうまくいきますが、"myscript" コマンドが終了した後、実行が停止し、pythonスクリプトに戻ってきません。

どうしたらいいでしょうか。私は fork() 以前 calling os.execlp() ?

どのように解決するのですか?

<ブロッククオート

サブプロセスで は subprocess モジュール を使うと、新しいプロセスを生成することができます。 入力/出力/エラーパイプに接続し パイプに接続し、そのリターンコードを取得することができます。

http://docs.python.org/library/subprocess.html

使用方法

import subprocess
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
process.wait()
print process.returncode