1
私はこのコードをLinux上でうまく動作しますが、Windowsでは失敗します。プロセスは罰金作成されますが、私はエラーを取得し、何がパイプから読み込まれていないされています。私は取得Windows上のサブプロセス配管出力
p = subprocess.Popen(['python', '-u', self.file_to_run,
'-s', '-g', '-i', self.input_file],
universal_newlines=True,
stdout=subprocess.PIPE)
...
out = p.stdout.readline().rstrip()
エラーは、私が実際には複数のこのようなプロセスを作成して、その出力に基づいていくつかの値を計算する
Traceback (most recent call last):
File "bench.py", line 59, in <module>
multi.add_process()
File "bench.py", line 47, in add_process
stdout=subprocess.PIPE)
File "c:\python\v2.5.1-ast3\...\lib\subprocess.py", line 615, in __init__
self.stdout = os.fdopen(c2pread, 'rU', bufsize)
OSError: [Errno 22] Invalid argument
あり、しかしそれは無関係です。私がする必要があるのは、特定の引数を指定してスクリプトを複数回実行し、各プロセスのstdoutからパイプされたデータを解析することです。
コマンドはシェル上で動作しますか?愚かな質問、私は知っているが、確かにしている。私は通常、コマンド文字列を作成して出力し、それを手動で実行して、動作することを確認します。その後、私は通常引数の解析を処理するためにshlexを使用します。 – pcalcao
@マリン:ping!あなたはその問題を解決しましたか? –
@gurneyalex残念ながら、いいえ... – Marin