我想在shell中运行命令。我们所有人都知道我们可以使用os.system()。但是必须输入此命令才能使命令完成。
现在我这样做,如下:
from subprocess import Popen, PIPE
Popen(my_cmd.split(), stdin=PIPE).stdin.write('\n')
但它是异步的。我想知道,是否有可能使用os.system()或一些简单的方法来实现它。
答案 0 :(得分:1)
os.system()
虽然没有被弃用,但被许多人认为是多余的。可以使用subprocess
完成所有可以完成的事情。
如果你不喜欢你的程序和其他进程同时运行的事实(我认为这是异步的意思),你可以做到
from subprocess import Popen, PIPE
sp = Popen(my_cmd.split(), stdin=PIPE)
sp.stdin.write('\n')
sp.wait()
这最后一次.wait()
调用使子进程调用“有点同步”。