64

bash で実行echo a; echo bすると、両方のコマンドが実行されます。ただし、サブプロセスを使用すると、最初のコマンドが実行され、残りの行全体が出力されます。a; echo b以下のコードはの代わりにエコーa bします。両方のコマンドを実行するにはどうすればよいですか?

import subprocess, shlex
def subprocess_cmd(command):
    process = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE)
    proc_stdout = process.communicate()[0].strip() 
    print proc_stdout

subprocess_cmd("echo a; echo b")
4

6 に答える 6

15

コマンドを「&&」で結合します。

os.system('echo a > outputa.txt && echo b > outputb.txt')
于 2016-08-29T21:25:10.523 に答える