要从python脚本运行shell命令,我通常使用subprocess
或os.system
模块。
使用它我从python脚本运行一些shell命令,它启动另一个应用程序,该应用程序也有命令行界面。
如果有人可以提供材料或示例代码,我们将不胜感激。
答案 0 :(得分:2)
启动的应用程序在运行子进程时可能会有不同的行为。具体来说,当连接到流程管道时,某些应用程序默认缓冲其输出而不是逐行刷新。如果您正在运行的应用程序刷新其输出,您可以实时获取它,否则,只有在缓冲区已满时才会输出。
那就是说,这是一个运行某些应用程序的例子:
p = subprocess.Popen(['someapp', 'param1', 'param2'],
stdin=subprocess.PIPE, stdout=subprocess.PIPE,)
# sends the command "some_command" to the app:
p.stdin.write('some_command\n')
# waits for a single line from the output
result = p.stdout.readline()
如果它挂在p.stdout.readline()
上,则表示输出正在缓冲。