首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python子进程等待,直到标准输出上的特定字符串

,可以通过以下步骤实现:

  1. 导入必要的模块:
代码语言:txt
复制
import subprocess
import re
  1. 创建子进程并执行命令:
代码语言:txt
复制
process = subprocess.Popen(['command'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)

其中,command是要执行的命令。

  1. 循环读取子进程的标准输出,直到匹配到特定字符串:
代码语言:txt
复制
while True:
    output = process.stdout.readline()
    if output == '' and process.poll() is not None:
        break
    if re.search('特定字符串', output):
        break

在这里,特定字符串是你要等待的字符串。

  1. 等待子进程结束并获取返回结果:
代码语言:txt
复制
process.communicate()

完整的代码示例:

代码语言:txt
复制
import subprocess
import re

def wait_for_string():
    process = subprocess.Popen(['command'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
    while True:
        output = process.stdout.readline()
        if output == '' and process.poll() is not None:
            break
        if re.search('特定字符串', output):
            break
    process.communicate()

wait_for_string()

在这个例子中,你需要将command替换为你要执行的实际命令,将特定字符串替换为你要等待的实际字符串。

对于腾讯云相关产品,可以使用腾讯云函数(SCF)来执行这个Python脚本。腾讯云函数是一种无服务器计算服务,可以帮助你在云端运行代码。你可以通过以下链接了解更多关于腾讯云函数的信息:

请注意,以上答案仅供参考,具体实现方式可能因实际情况而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python—subprocess、gl

像Linux进程那样,一个进程可以fork一个进程,并让这个子进程exec另外一个程序。在Python中,我们通过标准库中subprocess包来fork一个进程,并运行一个外部程序。...我们必须调用对象wait()方法,父进程才会等待 (也就是阻塞block) 例1(父进程等待进程): #!...child完成,而是直接运行print 例2(父进程等待进程): #!...()       # 终止进程 child.pid               #存储进程PID 2.进程文本流控制 进程标准输入、标准输出和标准错误如下属性分别表示: child.stdin...child2输出文本也被存放在PIPE中,直到communicate()方法从PIPE中读取出PIPE中文本;communicate()是Popen对象一个方法,该方法会阻塞父进程直到进程完成

1.5K20

Python标准库06 进程 (subprocess包)

Python中,我们通过标准库中subprocess包来fork一个进程,并运行一个外部程序(fork,exec见Linux进程基础)。...subprocess.check_output() 父进程等待进程完成 返回进程标准输出输出结果 检查退出信息,如果returncode不为0,则举出错误subprocess.CalledProcessError...这个时候,我们使用一整个字符串,而不是一个表来运行进程Python将先运行一个shell,再用这个shell来解释这整个字符串。...要注意是,communicate()是Popen对象一个方法,该方法会阻塞父进程直到进程完成。...) child.communicate("vamei") 我们启动进程之后,cat会等待输入,直到我们用communicate()输入"vamei"。

2.7K60

Python模块之subprocess

二 基础知识 Python2.4引入subprocess模块来管理进程,可以像Linux 系统中执行shell命令那样fork一个进程执行外部命令,并且可以连接进程output/input...他们分别是 2.1 subprocess.call() 父进程等待进程完成,并且返回进程执行结果 0/1 其实现方式 def call(*popenargs, **kwargs):...,需要考虑 1) 在创建进程之后,父进程是否暂停,并等待进程运行。...与上面第二部分介绍三个函数不同,subprocess.Popen() fork进程之后主进程不会等待进程结束,而是直接执行后续命令。...需要注意是 communicate()是Popen对象一个方法,该方法会阻塞父进程直到进程完成。 Popen.send_signal(signal) 向进程发送信号。

1.9K10

使用python执行shell脚本 并动态传参 及subprocess使用详解

最近工作需求中 有遇到这个情况 在web端获取配置文件内容 及 往shell 脚本中动态传入参数 执行shell脚本这个有多种方法 最后还是选择了subprocess这个python标准库 subprocess...bufsize默认值是0(无缓冲)。 stdin,stdout和stderr分别指定执行程序标准输入,标准输出和标准错误文件句柄。...(仅限Windows) Popen对象一些方法 Popen.poll() 检查进程是否终止,返回对象returncode Popen.wait() 等待进程完成,阻塞。...返回returncode Popen.communicate(input=None) 将信息输入到进程,从stdout和stderr中读取数据,直到达到文件结尾。等待进程终止。...可选stdin参数应该是要发送到进程字符串,如果没有数据应发送给进程,则为None。

5.2K30

Python 执行系统命令

system函数可以将字符串转化成命令在服务器上运行;其原理是每一条system函数执行时,其会创建一个进程在系统上执行命令行,进程执行结果无法影响主进程。...Popen方法: 1、Popen.poll():用于检查进程是否已经结束。设置并返回returncode属性。 2、Popen.wait():等待进程结束。设置并返回returncode属性。...该函数将一直等待进程运行结束,并返回进程returncode。文章一开始例子就演示了call函数。如果子进程不需要进行交互,就可以使用该函数来创建。...ipconfig', # cmd特定查询空间命令 stdin=None, # 标准输入 键盘 stdout=PIPE, # -1 标准输出(演示器、终端) 保存到管道中以便进行操作...stderr=PIPE, # 标准错误,保存到管道 shell=True) # print(proc.communicate()) # 标准输出字符串+标准错误字符串 outinfo

1.6K10

subprocess 使用总结

最近在项目中有使用 subprocess 这个模块,它功能主要是fork一个进程,并且运行一个外部程序。说白了就是可以用这个模块可以根据输入字符串执行对应系统 shell 指令。...linux下,默认是 /bin/bash universal_newlines参数,如果把 universal_newlines 设置成True,则进程 stdout 和 stderr 被视为文本对象...subprocess.PIPE 表示一个可以被用于Popenstdin 、stdout 和stderr 3个参数值,表示需要创建一个新管道。...2.Popen方法: Popen.poll(), 用于检查进程是否已经结束。设置并返回returncode属性。 Popen.wait(), 等待进程结束。设置并返回returncode属性。...Popen.pid,获取进程进程ID。 Popen.returncode, 获取进程返回值。如果进程还没有结束,返回None。

1.7K30

pythonsubprocess

python2.7 源码中注释(由于能力有限,翻译不太准确): 这个模块允许您开启进程、连接输入、输出和错误管道,并获取他们返回代码。...在python程序中都是看作为\n 注意: 这种功能仅仅支持用通用换行符构建python(默认)。同时文件对象标准输出、标准输入、标准错误换行符属性,不会被communicate()模块所更新。...Popen 对象 ============= Popen类实例有以下方法 poll()     检查进程是否终止,返回returncode属性 wait()     等待进程终止。...communicate(input=None)     与进程相互作用: 发送数据到标准输入。从标准输出、标准错误读取数据, 直到到达文件尾。等待进程终止。...可选input参数应该是发送给进程字符串,或者如果没有要发送给进程数据那就用None      communicate() 返回一个元组 (stdout, stderr).

1.6K30

Python,Shell 和 三个标准文件

场景 使用 Python 执行 Shell 命令(或者脚本),有两种执行场景: 等待直到命令执行完毕,一次性获取返回结果,做一些你想做事情; 命令执行同时,实时获取命令持续输出,做一些你想做事情...标准错误输出文件(stderr) 后两个文件对应终端屏幕,进程标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。...False 时候,我们需要把命令按空格使用逗号分隔开来(即 list 数据结构)传给 cmd 参数(目的是让 Python 清楚这条命令所有细节),代码中例子就是使用这种;而 True 时候只需要把命令一股脑...翻译一下: 与进程进行交互:将数据发送到 stdin。从 stdout 和 stderr 文件中读取数据,直到达到文件结尾。等待进程终止。...可选 input 参数应该是要发送到进程字符串,如果没有数据应该发送给进程,则为 None。 communicate() 返回一个元组 (stdout, stderr)。

1.4K60

Python调用系统命令六种方法

os.system() system函数可以将字符串转化成命令在服务器上运行;其原理是每一条system函数执行时,其会创建一个进程在系统上执行命令行,进程执行结果无法影响主进程。...官方推荐使用该模块执行系统命令,subprocess模块通过进程来执行外部指令,并通过input/output/error管道,获取进程执行返回信息。...特定查询空间命令 stdin=None, # 标准输入 键盘 stdout=PIPE, # -1 标准输出(演示器、终端) 保存到管道中以便进行操作 stderr=PIPE..., # 标准错误,保存到管道 shell=True) # print(proc.communicate()) # 标准输出字符串+标准错误字符串 outinfo, errinfo = proc.communicate...中新增函数, 执行指定命令, 等待命令执行完成后返回一个包含执行结果CompletedProcess类实例。

3.6K20

pythonsubprocess模块

它表示是一个已结束进程状态信息, ​ ​它所包含属性如下: args: 用于加载该进程参数,这可能是一个列表或一个字符串 ​ returncode: 进程退出状态码。...bufsize:缓冲区大小,可不用关心 stdin,stdout,stderr:分别表示程序标准输入,标准输出及标准错误 shell:与上面方法中用法相同 cwd:用于设置进程的当前目录 env:用于指定子进程环境变量...等待进程结束。...process to terminate. returns returncode attribute communicate()等待任务结束 没什么用,用Python当参数,Python进入环境 stdin...True同时重定向进程标准输入、输出与错误 shell:同上 cod:用于设置进程的当前目录 env:用于指定子进程环境变量。

3K20

异步编程举例之闹钟程序

它们分别是同步版本、多进程版本,之后和大家分享多线程版本。 该程序循环接受用户输入信息,直到出错或者输入完毕。...第一个是标准io头文件,第二个是sleep()函数用到头文件。接下来上码。...这样可以随时输入命令行,彼此独立运行,不会阻塞等待。程序难点在于对子进程资源回收,不做重点说明。...成功解析输入信息后,创建进程延时、显示信息。父进程等待进程结束并回收资源,通常是调用某个waitpid函数。 WNOHANG属性使父进程不必挂起等待进程结束。...如果有进程终止,则waitpid ()函数回收进程资源,如果没有进程结束,该函数立即返回0。父进程继续回收终止进程直到没有进程终止。 程序运行结果如图: ?

73730

Python | 常见场景】最佳实践系列 —— 各种场景及运用(适合下饭刷)

希望大佬带带) 该文章收录专栏 [✨— 《深入解析机器学习:从原理到应用全面指南》 —✨] @toc subprocess 模块 subprocess模块是Python标准库中用于创建和管理进程模块...与进程交互: ``subprocess模块还允许您与进程进行交互,发送输入并获取输出。您可以使用subprocess.Popen`类来创建进程对象,并使用它方法进行交互。...\n") process.stdin.close() output = process.stdout.read() print(output) ``` 上述代码创建一个Python进程,向其发送一段代码...其他功能: ``subprocess`模块还提供了其他一些功能,如控制进程输入、输出和错误流、设置超时、在后台运行进程等。您可以查阅官方文档以了解更多详细信息。...以上是subprocess模块一些基本用法,它提供了执行外部命令和与进程交互功能。对于更复杂用例,建议查阅官方文档以获取更多详细信息和示例。

15210

Python 【基础面试题】

,此时线程会继续执行自己任务,直到自己任务结束。...没有设置守护线程时,主线程将会等待timeout累加和这样一段时间,时间一到,主线程结束,但是并没有杀死线程,线程依然可以继续执行,直到线程全部结束,程序退出。...像Linux进程那样,一个进程可以fork一个进程,并让这个子进程exec另外一个程序 在Python中,我们通过标准库中subprocess包来fork一个进程,并运行一个外部程序。...subprocess包中定义有数个创建进程函数,这些函数分别以不同方式创建进程,所以我们可以根据需要来从中选取一个使用 另外subprocess还提供了一些管理标准流(standard stream...(wrapper),这些封装目的在于让我们容易使用进程 当我们想要更个性化我们需求时候,就要转向Popen类,该类生成对象用来代表进程 与上面的封装不同,Popen对象创建后,主程序不会自动等待进程完成

1.2K20

Python subprocess与命令行交互

Python subprocess 模块是一个功能强大库,用于启动和与流程交互。 它附带了一些高级 api,比如调用、检查输出和运行,这些都集中在程序运行和等待完成进程上。...请注意在调用时传递给 Python -u: 这对于避免标准输出缓冲并在进程被终止时尽可能多地查看标准输出非常关键。 在与进程交互时,缓冲是一个严重问题,稍后将看到更多这方面的示例。...样品肉发生在最后一块。 terminate()向进程发送一个 SIGTERM 信号。 然后,proc.communicate等待进程退出并捕获所有的标准输出。...,但由于某些原因(缺少换行、缓冲等) ,它无法获得完整输入 然后调用 readline 等待回复,因为进程仍然在等待输入完成(步骤1) ,所以步骤2可能会永远挂起。...这是典型僵局。 在交互最后,关闭进程 stdin (这是可选,但对于某些类型进程很有用) ,调用 terminate,然后等待

7.2K22

python常用标准

------------------- import os : 1、pid=os.fork():程序执行到os.fork()时,操作系统会创建一个新进程进程),然后复制父进程所有信息到进程中;...然后父进程进程都会从fork()函数中得到一个返回值,其进程中这个值一定是0,而父进程中是进程 id号;主:fock()函数只能在Unix/Linux/Mac上运行,windows不可以运行。...p.join():等待当前进程执行结束,可以等待进程结束后再继续向下运行,通常用于进程同步。...因为两个线程顺序完成,看起来象一个线程,所以称为线程合并 thread.setDaemon(True):默认情况主线程退出时会等待线程结束,如果希望主线程不等待线程,可以设置线程为后台线程...线程通过wait()方法进入等待状态,直到另一个线程调度set()方法将内置标志设置为True是,Event通知所有等待状态线程回复运行。

89420

听GPT 讲Rust源代码--librarystd(7)

这个向量存储了要传递给新进程命令行参数。 StdioPipes:StdioPipes 结构体用于保存父进程进程之间标准输入、标准输出和标准错误输出管道。...ChildPipes:ChildPipes 结构体包含了进程文件描述符和管道,用于进程间通信。...ChildStdio:ChildStdio 枚举类型用于表示进程标准输入、标准输出和标准错误输出类型。...WaitVariable则是一个等待变量,用于在无法获取锁时阻塞线程,直到有线程释放锁。通过这种组合,可以提供一个高效且可等待互斥锁机制。...SpinMutex和SpinMutexGuard组合可以确保在多线程环境下,只有一个线程能够访问被保护数据。其他试图获取锁线程将进入自旋等待状态,直到锁被释放。

14010

深入理解 RPC 交互流程

上图是信息系统交互模型宏观示意图,RPC 消息交互则会深入到底层。 RPC 是两个子系统之间进行直接消息交互,它使用操作系统提供套接字来作为消息载体,以特定消息格式来定义消息内容和边界。...消息从用户进程流向物理硬件,又从物理硬件流向用户进程,中间还经过了一系列路由网关节点。 上图呈现只是 RPC 一次消息交互上半场,下半场是一个逆向过程,从服务器进程向客户端进程返回响应数据。...完整一次 RPC 过程如下图所示: ? 下面用 Python 代码来描述上述过程。 Server 端死循环监听本地 8080 端口,等待客户端连接。...客户端启动时连接本地 8080 端口,紧接着发送词一个字符串 hello,然后等待服务器响应。 服务器接收到客户端连接后立即收取客户端发送过来字符串,也就是 hello,打印出来。...send buffer print sock.recv(1024) # 从接收缓冲 recv buffer 中读响应 sock.close() # 关闭套接字 如果从上面代码上观察,我们其实很难看出上图所示复杂过程

86420
领券