在python中运行命令后同步输入返回键的方法?

时间:2015-09-15 13:16:31

标签: python

我想在shell中运行命令。我们所有人都知道我们可以使用os.system()。但是必须输入此命令才能使命令完成。

现在我这样做,如下:

 from subprocess import Popen, PIPE
 Popen(my_cmd.split(), stdin=PIPE).stdin.write('\n')

但它是异步的。我想知道,是否有可能使用os.system()或一些简单的方法来实现它。

1 个答案:

答案 0 :(得分:1)

os.system()虽然没有被弃用,但被许多人认为是多余的。可以使用subprocess完成所有可以完成的事情。

如果你不喜欢你的程序和其他进程同时运行的事实(我认为这是异步的意思),你可以做到

from subprocess import Popen, PIPE
sp = Popen(my_cmd.split(), stdin=PIPE)
sp.stdin.write('\n')
sp.wait()

这最后一次.wait()调用使子进程调用“有点同步”。