从python scrip向应用程序CLI传递命令

2024-06-17 12:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

为了从python脚本运行shell命令,我通常使用subprocessos.system模块。你知道吗

我正在使用它从python脚本运行一些shell命令,这个脚本正在启动另一个应用程序,该应用程序也有命令行接口。你知道吗

  1. 如何从python脚本向该应用程序CLI传递命令?你知道吗
  2. 如何从python脚本捕获application CLI的输出?你知道吗

如果有人能推荐材料或示例代码,我们将不胜感激。你知道吗


Tags: 模块代码命令行命令脚本应用程序示例cli
1条回答
网友
1楼 · 发布于 2024-06-17 12:19:21

在运行子进程时,您正在启动的应用程序的行为可能会有所不同。具体地说,当连接到流程管道时,一些应用程序在默认情况下缓冲其输出,而不是逐行刷新。如果正在运行的应用程序刷新其输出,则可以实时获取,否则,只有在缓冲区已满时才能获取输出。你知道吗

也就是说,下面是一个运行某个应用程序的示例:

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(),这意味着输出正在被缓冲。你知道吗

相关问题 更多 >