python os.system command line return value back to python
本问题已经有最佳答案,请猛点这里访问。
我正在调用第二个python脚本,该脚本是从我的脚本中为命令行编写的,使用
1 | os.system('insert command line arguments here') |
这很好,运行终端中的第二个脚本。我不想在终端中输出这个,只想访问正在打印的列表和变量。是否可以使用os.system?或者,我需要用别的东西吗?
除了打盹时间的答案,您还可以使用:
1 2 3 | import subprocess output = subprocess.check_output(['ls']) print(output) |
您可以使用子流程模块并通过管道重定向其输出。
例如,获取当前目录中的文件列表。
1 2 3 | import subprocess proc = subprocess.Popen(['ls'], stdout=subprocess.PIPE) print(proc.stdout.readlines()) |
更多详细信息,请参阅此处从python中os.system()的命令重定向stdio。
编辑:如果你试图将参数传递给子进程,popen每个进程都有自己的引号。
1 | proc = subprocess.Popen(['python','test.py','-b','-n'], stdout=subprocess.PIPE) |
以及文档https://docs.python.org/2/library/subprocess.html