Python脚本在终端执行命令

164 投票
11 回答
473957 浏览
提问于 2025-04-16 04:15

我之前在某个地方看到过这个,但现在找不到了。我想找一个可以在终端执行命令并输出结果的指令。

比如说:这个脚本会是:

command 'ls -l'

它会把在终端运行那个命令的结果输出出来。

11 个回答

10
import os
os.system("echo 'hello world'")

这个应该可以运行。我不知道怎么把输出打印到Python的命令行里。

63

我更喜欢使用 subprocess 模块:

from subprocess import call
call(["ls", "-l"])

原因是,如果你想在脚本中传递一些变量,这个模块提供了非常简单的方法。例如,看看下面这段代码:

abc = a.c
call(["vim", abc])
274

有几种方法可以做到这一点:

一种简单的方法是使用os模块:

import os
os.system("ls -l")

更复杂的操作可以通过subprocess模块来实现,比如:

import subprocess
test = subprocess.Popen(["ping","-W","2","-c", "1", "192.168.1.70"], stdout=subprocess.PIPE)
output = test.communicate()[0]

撰写回答