要从 python 脚本运行 shell 命令,我通常使用subprocess
oros.system
模块。
使用它,我正在从启动另一个应用程序的 python 脚本运行一些 shell 命令,并且该应用程序也具有命令行界面。
- 如何从我的 python 脚本向该应用程序 CLI 传递命令?
- 如何从我的 python 脚本中捕获应用程序 CLI 的输出?
如果有人可以建议材料或示例代码,我们将不胜感激。
要从 python 脚本运行 shell 命令,我通常使用subprocess
oros.system
模块。
使用它,我正在从启动另一个应用程序的 python 脚本运行一些 shell 命令,并且该应用程序也具有命令行界面。
如果有人可以建议材料或示例代码,我们将不胜感激。
您正在启动的应用程序在通过子进程运行时可能会有不同的行为。具体来说,当连接到进程管道时,某些应用程序默认缓冲其输出,而不是逐行刷新。如果您正在运行的应用程序刷新其输出,您可以实时获取它,否则,您只能在缓冲区已满时获取输出。
也就是说,这是一个运行某些应用程序的示例:
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()
,则表示正在缓冲输出。