21

可能重复:
在 Python 中调用外部命令

我想使用 python 在另一个目录中运行命令。

用于此的各种方法是什么,哪种方法最有效?

我想要做的如下,

cd dir1
execute some commands
return 
cd dir2
execute some commands
4

4 回答 4

6

当然,如果您只想通过 python 在 shell 上运行(简单)命令,您可以通过模块的system功能来完成os。例如:

import os
os.system('touch myfile')

如果您想要更复杂的东西来更好地控制命令的执行,请继续使用subprocess此处其他人建议的模块。

如需更多信息,请点击以下链接:

于 2013-01-22T11:54:59.650 回答
4

如果您想对调用的 shell 命令进行更多控制(即访问标准输入和/或标准输出管道或异步启动它),您可以使用该subprocess模块:

import subprocess

p = subprocess.Popen('ls -al', shell=True, stdout=subprocess.PIPE)
stdout, stderr = p.communicate()

另请参阅subprocess模块文档

于 2013-01-22T11:50:51.287 回答
1
os.system("/dir/to/executeble/COMMAND")

例如

os.system("/usr/bin/ping www.google.com")

如果 ping 程序位于“/usr/bin”

自然需要导入 os 模块。

os.system 不等待任何输出,如果你想要输出,你应该使用

subprocess.call 或类似的东西

于 2013-01-22T11:44:28.620 回答
0

您可以使用Python Subprocess,它提供了许多模块来执行命令、检查输出和接收错误消息等。

于 2013-01-22T11:51:18.593 回答