gpt4 book ai didi

python - 你如何执行一个终端命令,然后在 Python 中反复检查和存储响应?

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:49 24 4
gpt4 key购买 nike

我有一个要运行一次的终端命令。基本上,当您执行命令时,程序会连续运行,直到另有通知为止。程序运行时,它会不断向终端输出文本字符串。我想以某种方式将这些字符串存储为一个变量,这样我就可以检查它是否包含特定的关键字。我尝试使用 os.system,但可惜的是,它不存储程序的响应。在此先感谢,我为我的天真感到抱歉

最佳答案

要生成运行命令的子进程,请使用 subprocess.Popen:

proc = subprocess.Popen(['cat', 'myfile'], stdout = subprocess.PIPE)

通过将 stdout 设置为 PIPE,您将通过您控制的 channel 制作 cat 输出文本。

Popen 返回时,proc.stdout 将是一个类文件 对象,您可以read()。为了方便起见,它还公开了 readline()

readline() 返回流的下一行,包括末尾的 \n。当它返回 '' 时,没有什么可读的了。

line = proc.stdout.readline()

while line != '':
print line

您还可以创建一个行迭代器来逐行遍历输出。您可以将此迭代器提供给其他函数,然后这些函数可以使用您的子进程的输出而无需直接与进程对象交互:

iterator = iter(proc.stdout.readline, '')

# Somewhere else in your program...
for line in iterator:
print line

关于python - 你如何执行一个终端命令,然后在 Python 中反复检查和存储响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25345335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com