如何通过Python在Shell中运行命令

23 投票
4 回答
19534 浏览
提问于 2025-04-17 13:20

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

我想用Python在另一个目录下运行命令。

有什么方法可以做到这一点,哪种方法最有效呢?

我想做的事情如下:

cd dir1
execute some commands
return 
cd dir2
execute some commands

4 个回答

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

比如说

os.system("/dir/to/executeble/COMMAND")

如果 ping 程序放在 "/usr/bin" 这个地方

那么你自然需要导入 os 模块。

os.system 这个方法不会等到任何输出,如果你想要看到输出,你应该使用

subprocess.call 或者类似的东西。

4

如果你想对调用的命令有更多的控制,比如想访问输入输出流,或者想让它异步运行,你可以使用 subprocess 模块:

import subprocess

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

你也可以查看 subprocess 模块的文档,了解更多信息。

8

如果你只是想通过Python在命令行上运行一个(简单的)命令,可以使用os模块里的system函数。例如:

import os
os.system('touch myfile')

如果你想要更复杂一点的功能,这样可以更好地控制命令的执行,那就可以使用subprocess模块,很多人都推荐这个。

想了解更多信息,可以查看以下链接:

撰写回答