Pythonでシェルコマンドを呼び出すにはos.callがあるが、
ナウなヤングはsubprocessをつかう
公式の動機付け(PEP 324 -- subprocess - New process module)として
No implicit call of /bin/sh. This means that there is no need for escaping dangerous shell meta characters.
実際のところ
PEP 324 -- subprocess - New process module | Python.orgより
ややバッドノウハウ的な、Python2系統でつかえたバッククォートでシェルコマンド展開して結果を格納するのを
cmd=`mycmd myarg`
このように書き換える。
cmd = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0]
引数も渡せるぞ
import subprocess import sys command = ["ls", "-l"] res = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) sys.stdout.buffer.write(res.stdout)
単純にコマンドやりたいだけなら
cmd = "pwd"
subprocess.run(cmd)