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

python从子进程获取grep -q的输出

是指在Python中通过子进程执行grep命令并获取其输出结果。

在Python中,可以使用subprocess模块来创建和管理子进程,同时获取子进程的输出。grep -q是用于在文本中查找指定模式并不输出任何结果的命令。

以下是实现这个功能的代码示例:

代码语言:txt
复制
import subprocess

def get_grep_output(pattern, text):
    # 使用subprocess创建子进程并执行grep命令
    process = subprocess.Popen(['grep', '-q', pattern],
                               stdin=subprocess.PIPE,
                               stdout=subprocess.PIPE,
                               stderr=subprocess.PIPE,
                               universal_newlines=True)
    
    # 向子进程的stdin发送要匹配的文本
    process.stdin.write(text)
    process.stdin.close()
    
    # 获取子进程的输出结果
    output = process.stdout.read()
    process.stdout.close()
    
    # 等待子进程结束
    process.wait()
    
    # 返回grep命令的输出结果
    return output

# 测试代码
pattern = 'example'
text = 'This is an example text.'
output = get_grep_output(pattern, text)
print(output)

以上代码中,get_grep_output函数接受两个参数:pattern表示要查找的模式,text表示要进行查找的文本。函数通过创建一个子进程,并使用grep -q命令在文本中查找指定模式。然后将文本通过标准输入传递给子进程,并获取子进程的输出结果。

注意:这只是一个简单的示例,实际使用时可能需要根据具体需求进行进一步的优化和处理。

推荐的腾讯云相关产品:无

希望以上回答能够满足你的需求。如有任何问题,请随时向我提问。

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

相关·内容

python 从subprocess运行进程中实时获取输出

起因是这样,c++程序开发后 功能号和指令,校验需要人工去看对照二进制代码,量大还费力, 于是打算利用python 去调用 c++程序去校验指令, 首先要做就是用python 获取c++程序...printf() 或cout 输出; 环境linux python 3.8.x 以下代码实现,获取子程序输出 command='....linux shell指令,如果要用shell 指令如ls 要将false 变成true, 通过指定stderr=subprocess.STDOUT,将子程序标准错误输出重定向到了标准输出,以使我们可以直接从标准输出中同时获取标准输出和标准错误信息...p.poll() 返回子进程返回值,如果为None 表示 c++子进程还未结束. p.stdout.readline() 从 c++标准输出获取一行....参考文章1 pythonsubprocess.Popen()使用 参考文章 2 python 从subprocess运行进程中实时获取输出

10.4K10

实时获取Pythonprint输出

应用场景是:使用shell执行python文件,并且通过调用返回值获取python标准输出流。...shell程序如下: cmd='python '$1' '$2' '$3' '$5' '$4 RESULT=eval $cmd echo $RESULT 之前我python程序如下: # coding...shell不能实时获取pythonprint流,也就是说不是获取第一条print语句之后,休眠了30秒之后才获取最后一条print语句。...所有的print流在shell中都是一次性获取,这种情况对于执行时间比较短程序脚本没什么影响,但是当python程序需要执行很长时间,而需要通过print流追踪程序,就影响比较大。...通过查阅资料,可知: 当我们在 Python 中打印对象调用 print obj 时候,事实上是调用了 sys.stdout.write(obj+’\n’) print 将你需要内容打印到了控制台

2.7K10
  • psutilProcess python获取进程信息「建议收藏」

    进程创建时间:create_time() s.create_time() 12. 使用进程用户名:username() 拥有流程用户名称。...进程优先级:nice() 获取或者设置进程优先级,value值就是需要设置优先级,默认为None,是获取当前进程优先级 def nice(self, value=None): """Get...这些是执行读/写调用数量和进程读取和写入字节数。 s.io_counters() 17. 进程I/O优先级: 获取或设置进程I/O良好性(优先级)。...进程使用线程数:num_threads() 返回此进程使用线程数。 s.num_threads() 21. 当前进程进程:children() s.children() 22....进程打开套接字连接:connections() 返回进程打开套接字连接列表(fd、family、type、laddr、raddr、status)名元组。

    2.5K20

    第十五章 Python进程与多线程

    相反是乱序。因此join()方法是堵塞父进程,要等待当前子进程执行完后才会继续执行下一个子进程。否则会一直生成子进程去执行任务。 在要求输出情况下使用join()可保证每个结果是完整。...3个子进程,通过循环执行8次worker函数,进程池会从子进程1开始去处理任务,当到达最大进程时,会继续从子进程1开始。...在运行此程序同时,再打开一个终端窗口会看到生成进程: # ps -ef |grep python root      40244   9041  4 16:43 pts/3   00:00:00 python...当你在写多线程程序时候如果输出结果是混乱,这时你应该考虑到在不使用锁情况下,多个线程运行时可能会修改原有的变量,导致输出不一样。...Python进程是复制父进程资源,互不影响,有各自独立GIL锁,保证数据不会混乱。能用多进程就用吧!

    75810

    获取python运行输出数据并解析存为dataFrame实例

    _’ 因为不是用分类器或者回归器,而且是使用train而不是fit进行训练,看过源码fit才有evals_result_这个,导致训练后没有这个,但是又想获取学习曲线,因此肯定还需要获取训练数据...运行结果 上面有数据,于是就想自己解析屏幕数据试一下,屏幕可以看到有我们迭代过程数据,因此想直接获取屏幕上数据,思维比较low但是简单粗暴。 ?...接下来分两步完成: 1) 获取屏幕数据 import subprocess import pandas as pd top_info = subprocess.Popen(["python", "main.py...就是自己之前执行python文件 2) 解析文件数据: ln=0 lst=dict() for line in lines: if line.strip().startswith('[{}] train-auc...以上这篇获取python运行输出数据并解析存为dataFrame实例就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.6K30

    企业安全建设之基于Redis未授权访问挖矿蠕虫分析

    借此使用计划任务执行命令, 其中` */1 * * * *` 指的是每分钟执行一次相关命令 整个python文件作用就是蠕虫式传播,使用python对Redis未授权访问利用,将挖矿文件传播给B段...grep -v grep|grep "mine.moneropool.com"|awk '{print $2}'|xargs kill -9 #查询显示其他用户启动进程(a)查看系统中属于自己进程...(x)启动这个进程用户和它启动时间(u)通过grep过滤出mine.moneropool.com字符串,通过awk 截取第二域 传递给kill ps auxf|grep -v grep|grep...:443 将第7个字段输出,以/为分割符输出第一个字段,最后杀死名称中有xargs进程 netstat -anp | grep 185.71.65.238 |awk '{print $7}'| awk...#查询网络状态 筛选 进程名称为:kworkerds 统计进程目录下文件行数 if [ ${y} -eq 0 ];then netstat -anp | grep :13531 |awk '{print

    1.1K20

    笨办法学 Linux 8~11

    实际上这意味着为了熟练使用 Linux,你需要知道如何从一个程序中获取输出,并将其提供给另一个程序,通常会在此过程中修改它。...获取当前目录中文件列表 向显示器写出错误 向管道写出输出 启动 tr -s ' ' 通过管道从 ls -al 读取输入 两个字段之间只保留一个空格...只保留字段 8 和 9,扔掉其它东西 向显示器写出错误 向显示器写出输出 更详细地说,这是每一步发生事情: 第一步:ls -al,我们获取了目录列表,每一列都叫做字段...在 Linux 中,有一个标准机制,用于获取从子进程到父进程信息,这个机制称为退出状态或返回代码。...通过使用这种机制,当子进程完成其工作时,一个小数字从子进程(或被调用者,这里是cp)传递给父进程(或调用者,这里是 bash)。

    64320

    Linux Shell函数返回值

    获取函数返回值通过调用函数,或者最后执行值获得。 另外,可以直接用函数返回值用作if判断。 注意:return只能用来返回整数值,且和c区别是返回为正确,其他值为错误。...笔者认为,之所以return语句没有直接返回,是因为return语句是在管道中执行,管道其实是另一个子进程,而return只是从子进程中返回而已,只是while语句结束了。...3) echo 返回值 其实在shell中,函数返回值有一个非常安全返回方式,即通过输出到标准输出返回。因为子进程会继承父进程标准输出,因此,子进程输出也就直接反应到父进程。...因此不存在上面提到由于管道导致返回值失效情况。 在外边只需要获取函数返回值即可。 示例: #!...特别要注意是,用到比如grep这样命令时候,一定要记得1>/dev/null 2>&1来避免这些命令输出

    9.1K20

    工作常用linux命令「建议收藏」

    nohup 查进程 获取占用CPU资源最多10个进程 杀掉进程 远程拷贝 一个机器两个账户之间拷贝 命令快捷技巧 查目录下有哪些文件 查本机ip,只显示本机ip grep 1.在文件中查找 2....rpm查看包安装位置以及安装文件:rpm 如rpm -qa列出所有安装过软件包;rpm -q | grep 包名包是否安装;rpm -qa | grep XXX列出包含某字符包;rpm -ql 包名包安装文件到哪里去了...用nohup时候要用命令绝对路径 type python获取python绝对路径 type hadoop获取hadoop绝对路径 后台运行:nohup /xx/xx/python **....’ 查看当前终端后台运行任务: jobs jobs -l能查看到pid 查看当前所有进程:ps -ef|grep codeFilename 或者ps -ef|grep 进程Id 终止后台运行进程...l 获取占用CPU资源最多10个进程 linux下获取占用CPU资源最多10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -

    2.8K30

    内存取证工具Volatility学习

    该工具是由python开发,目前支持python2、python3环境。接下来小编将带领大家学习Volatility工具安装及使用。...使用插件获取内存详细情况和运行状态,同时可以直接dump系统文件,屏幕截图,查看进程。...|txt|doc’ dumpfiles:导出某一文件(指定虚拟地址) 需要指定偏移量 -Q输出目录 -D memdump:提取出指定进程,常用foremost 来分离里面的文件 需要指定进程...可以列出内存中运行进程pid,ppid等信息: volatility -f 镜像名 --profile=第一步获取版本信息 pslist` 在第一步获取是Win2003SP0x86,所以命令组合以下就是.../result 导出文件名进程PID,后缀名为dmp 可以使用strings -e l 2616.dmp | grep flag,筛选其中flag -e为选择字符大小,l为32bit为一个字符

    2.2K11

    pythonsubprocess模块

    ,subprocess是Python 2.4中新增一个模块,它允许你生成新进程,连接到它们 input/output/error 管道,并获取它们返回(状态)码。...stdout, stderr: run()函数默认不会捕获命令执行结果正常输出和错误输出,如果我们向获取这些内容需要传递subprocess.PIPE,然后可以通过返回CompletedProcess...通常情况下,退出状态码为0则表示进程成功运行了;一个负值-N表示这个子进程被信号N终止了 ​ stdout: 从子进程捕获stdout。...需要说明是,该方法在python3.x中才有。 call()方法启动进程,其标准输入输出会绑定到父进程输入和输出。调用程序无法获取命令输出结果。...ID Popen.returncode 获取进程状态码,0表示子进程结束,None未结束 在使用Popen调用系统命令式,建议使用communicate与stdin进行交互并获取输出(stdout),

    3K20

    20分钟吃掉Linux常用命令40式

    26, ps 查看进程信息 ps:process status 例1:ps -u liangyun #查看当前liangyun用户全部进程信息 例2:ps -alf | grep python...#查看当前所有和Python相关进程 27, kill 杀死进程 例1:kill -9 12345 #杀死进程号为12345进程 例2:kill -9 $(ps -ef | grep liangyun...) #杀死某个用户所有进程 例3:ps -ef | grep liangyun03 | grep -v 'grep' | awk '{print $2}' |xargs kill -9 #杀死某个用户所有进程...这条命令语法说明如下: ps -ef : 打印出正在运行进程信息 grep liangyun :查找进程信息带有liangyun03关键字进程 grep -v 'grep' : 去掉grep自身进程信息...例1:python test.py output.txt 2>error.txt # input.txt作为test.py输入,标准输出到output,错误输出到error

    4.2K21

    一招搞定Nginx安装

    cd /home/q #进入到目录 wget https://ops.test.com/nginx.tar.gz #下载nginx安装包, 这里可以看看以前文章,有一篇讲的是python构建 http...“————————————-start nginx service————————————-“#输出 if [ ‘grep “nginx” /etc/passwd’ ]; then #判断是否有nginx...else echo “user nginx exsits”#输出 fi ln -s /home/q/nginx/sbin/nginx /usr/bin/nginx #创建一个软链 ###添加系统服务及开启自启动...服务配置文件归属于systemctl管理 systemctl enable nginx #服务自启动nginx systemctl start nginx #启动nginx服务 ps -ef |grep...nginx #查看nginx进程 如何检查是否安装成功 ps -ef |grep nginx 这条命令,也就是脚本里面的最后一条命令可以检查进程是否存在 总结:今天分享内容主要是跟大家介绍了什么是

    32020

    1.并发编程~先导篇(上)

    如果pid是一个正数,waitpid()请求获取一个pid指定进程退出信息 如果pid为0,则等待并获取当前进程组中任何子进程值 如果pid为-1,则等待当前进程任何子进程 如果pid小于-1...,则获取进程组id为pid绝对值任何一个进程 当系统调用返回-1时,抛出一个OSError异常。...简单概况上图:子进程只读,父进程只写 or 子进程只写,父进程只读 (如果想要相互读写通信~两根管道走起) 简单分析一下 ps aux|grep python ,本来ps aux是准备在终端中输出,现在写入内核缓冲区了...,grep从内核缓冲区里面读取,把符合条件输出到终端 终端文件描述获取: import sys sys.stdin.fileno() # STDIN_FILENO = 0:文件描述符输入(读端) sys.stdout.fileno...", "grep", "python", "--color=auto") if __name__ == '__main__': main() 输出:(用到函数: os.pipe() and

    1.5K40

    pythonsubprocess

    python2.7 源码中注释(由于能力有限,翻译不太准确): 这个模块允许您开启进程、连接输入、输出和错误管道,并获取他们返回代码。...如果 cwd 不为None,子进程将在执行前切换到 cwd指定目录 如果 env 不为空,为新进程定义环境变量 如果 universal_newlines 为 True, 则文件对象标准输出、标准错误输出以文本文件形式打开...在python程序中都是看作为\n 注意: 这种功能仅仅支持用通用换行符构建python(默认)。同时文件对象标准输出、标准输入、标准错误换行符属性,不会被communicate()模块所更新。...此外,异常对象会有一个额外称为'child_traceback'属性,从子进程角度上看,这是一个包含错误信息字符串。 ...参数是PIPE , 这个属性是提供错误输出到子进程一个文件对象,否则为None pid     子进程PID returncode     子进程返回码。

    1.6K30

    并发编程~先导篇上

    如果pid是一个正数,waitpid()请求获取一个pid指定进程退出信息 如果pid为0,则等待并获取当前进程组中任何子进程值 如果pid为-1,则等待当前进程任何子进程 如果pid小于-1...,则获取进程组id为pid绝对值任何一个进程 当系统调用返回-1时,抛出一个OSError异常。...or 子进程只写,父进程只读 (如果想要相互读写通信~两根管道走起) 简单分析一下 ps aux|grep python ,本来ps aux是准备在终端中输出,现在写入内核缓冲区了,grep从内核缓冲区里面读取...,把符合条件输出到终端 终端文件描述获取: import syssys.stdin.fileno() # STDIN_FILENO = 0:文件描述符输入(读端)sys.stdout.fileno()...", "grep", "python", "--color=auto")if __name__ == '__main__': main() 输出:(用到函数: os.pipe() and os.dup2

    1.9K80

    Python3运行时查看线程信息

    前一篇文章说了一下在是用Python2情况下怎样查看运行时线程信息,今天查资料时候发现,原来在Python3中引入了 faulthandler 模块,可以简化我们很多工作,甚至,如果不需要保持进程继续运行情况下可以不用修改我们已有的代码...,就是周期性往命令行终端输出一下时间,如下: #!...,可以通过三种方式来打开: 使用 PYTHONFAULTHANDLER=true 环境变量 使用 python3 -q -X faulthandler 来起用 代码方式来启用 这里我们通过设置环境变量...运行上面的程序,我们发现一个问题,一旦dump threads后,进程就退出了,而如果我们不想让进程退出,该怎么办呢,这就要用到前一篇文章中说提到复写信号处理函数了。...SIGQUIT 信号 $ kill -SIGQUIT `ps -ef | grep test.py | grep -v 'grep' | awk '{print $2}'` 然后可以在 /tmp 目录下找到输出线程日志

    2K50
    领券