python os.system命令行返回值返回python

时间:2016-06-17 01:58:29

标签: python shell command-line arguments

我正在调用第二个python脚本,该脚本是使用

从我的脚本中为命令行编写的
os.system('insert command line arguments here')

这很好用,并在终端中运行第二个脚本。我希望这不会在终端输出,只需访问正在打印的列表和变量。这是否可以使用os.system?或者,我是否需要使用其他东西?

2 个答案:

答案 0 :(得分:1)

您可以使用子流程模块并通过管道重定向其输出。

例如,获取当前目录中的文件列表。

import subprocess
proc = subprocess.Popen(['ls'], stdout=subprocess.PIPE)
print(proc.stdout.readlines())

此处有更多详情Redirecting stdio from a command in os.system() in Python

编辑:如果您尝试将参数传递给subprocess.Popen,则每个参数都会获得自己的引号集。

proc = subprocess.Popen(['python','test.py','-b','-n'], stdout=subprocess.PIPE)

文档https://docs.python.org/2/library/subprocess.html

答案 1 :(得分:1)

除了snoozeTime的答案,你可以使用:

import subprocess
output = subprocess.check_output(['ls'])
print(output)