我正在调用第二个python脚本,该脚本是使用
从我的脚本中为命令行编写的os.system('insert command line arguments here')
这很好用,并在终端中运行第二个脚本。我希望这不会在终端输出,只需访问正在打印的列表和变量。这是否可以使用os.system?或者,我是否需要使用其他东西?
答案 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)
答案 1 :(得分:1)
除了snoozeTime的答案,你可以使用:
import subprocess
output = subprocess.check_output(['ls'])
print(output)