python中获取shell命令的返回值

2024-03-03

我正在做os.system追踪实时文件并grep对于一个字符串 grep 成功后如何执行某些操作? 例如

cmd=  os.system(tail -f file.log | grep -i abc)
if (cmd):     
         #Do something and continue tail

我有什么办法可以做到这一点吗?它只会来到if当 os.system 语句完成时阻塞。


您可以使用subprocess.Popen并从标准输出读取行:

import subprocess

def tail(filename):
    process = subprocess.Popen(['tail', '-F', filename], stdout=subprocess.PIPE)

    while True:
        line = process.stdout.readline()

        if not line:
            process.terminate()
            return

        yield line

例如:

for line in tail('test.log'):
    if line.startswith('error'):
        print('Error:', line)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python中获取shell命令的返回值 的相关文章

随机推荐

  • 如何使用 Paramiko 运行 sudo? (Python)

    我尝试过的 invoke shell then channel send su然后发送密码导致不是root invoke shell 进而channel exec command导致 通道已关闭 错误 transport open sess
  • python * 运算符的正确名称?

    操作员的正确名称是什么 as in function args 解压 解压 还有别的吗 在 Ruby 和 Perl 6 中 这被称为 splat 我认为大多数人 如果你这么称呼的话 那些社区会明白你的意思 The Python教程 docs
  • SQL Server 2000 - 调试死锁

    我正在寻找有关如何调试和解决 SQL Server 2000 数据库中的死锁问题的建议 有人建议我使用跟踪标志 1024 和 3605 我发现它们可以提供以下信息 1024 此跟踪标志返回参与死锁的锁的类型以及受影响的当前命令 3605 此
  • 如何让背景图像跨越网格布局

    我有一个网格布局 假设第一行有 2 行 2 列 第二行有 3 列 它们之间的网格间隙为 10px 给每个网格一个背景图像是没有问题的 但是 如果我希望它们都具有相同的背景图像 该背景图像从左上角网格开始并继续 跨越直到右下角网格 所有网格上
  • 递归Kaatsuba 乘法不起作用?

    我正在尝试实施唐叶乘法 https en wikipedia org wiki Karatsuba algorithm通过递归调用 下面的代码应该可以工作 但我一直得到错误的答案 有什么想法吗 public static long kara
  • Java RandomString类[重复]

    这个问题在这里已经有答案了 可能的重复 HangMan RandomString 类 https stackoverflow com questions 13818297 hangman randomstring class 以下是方向 创
  • 将 UITableView 添加到现有 ViewController

    我正在尝试添加一个UITableView到现有的UIViewController以编程方式 My run h文件有这个 interface runTests UIViewController
  • 将 process.env.NODE_ENV 与 String 进行比较

    为什么当我比较这两个时我得到false const production process env NODE ENV production 即使当我设置process env NODE ENV到生产我仍然得到false value Why E
  • 获取python项目使用的所有模块/包

    我有一个 python GUI 应用程序 现在我需要知道应用程序链接到的所有库 这样我就可以检查所有库的许可证兼容性 我尝试过使用 strace 但 strace 似乎会报告所有包 即使应用程序未使用它们 而且 我尝试了 python Mo
  • 如何更改 mysql 表列默认值?

    我有一个带有 type 列的表timestamp默认值current timestamp并更新至current timestamp每次更新时 我想删除此列上的 更新时 功能 怎样写alter语句呢 我尝试了以下方法 ALTER TABLE
  • 模块在角度模块中没有导出成员错误

    我想创建一个功能模块来处理上传的前端 上传组件 html没有错误
  • 从 Eclipse 插件使用 Jython

    当从 Eclipse 插件运行时 我很难让 jython 正常工作 我有一个简单的对象工厂 它加载符合 Java 接口的 python 模块 所有这些在独立模式下都可以正常工作 然而 当我将其打包为 Eclipse 插件时 我根据一些变量收
  • gnu sort - 默认缓冲区大小

    我已阅读全文文档 http www gnu org software coreutils manual html node sort invocation html sort invocation对于 gnu sort 并在线搜索 但我找不
  • JS 将 blob url 转换为 Base64 文件

    有如下代码 console log blob var reader new window FileReader reader onloadend function console log reader result reader readA
  • 如何在 Flutter 中点击其他小部件时打开 DropdownButton?

    我需要有一个DropdownButton当点击其他一些小部件时 选项列表会以编程方式打开 显示 我知道这可能不是 UI 最佳实践 但我需要这种行为 举个例子 在像下面这样的结构中 我可能需要用胶带固定Text every 来打开邻近的Dro
  • 在 php 下拉列表中设置默认选项并在提交查询时保留

    我有下面的代码 它从 php ini 创建下拉菜单 我想在这里实现两件事 1 我想将其中一个选项设置为默认 它可以是硬编码的或从查询中选择的 2 当按下按钮时 应保留所选选项 我可以使用会话数据检索所选选项 echo print versi
  • PostgreSQL 10 => 11.1 关于 Brew 更新问题

    试图找到一条迁移路线PostgreSQL 10 6 to postgreSQL 11 1 Using pg upgrade 从两个版本 给我错误 从11 1我认为这将用于将过时的表格转换为货币 usr local Cellar postgr
  • 检查 ipython 中最后一个命令的退出状态

    有谁知道如何在 ipython 中检查最后执行的命令 退出代码 的状态 它应该存储为 exit code运行命令后 至少在即将发布的 v0 11 版本中
  • 实现基于查表的三角函数

    对于我在业余时间实现的视频游戏 我尝试使用查找表实现我自己的 sinf cosf 和 atan2f 版本 目的是使实现速度更快 但准确性较低 我的初步实现如下 这些函数可以工作 并返回良好的近似值 唯一的问题是他们是slower而不是调用标
  • python中获取shell命令的返回值

    我正在做os system追踪实时文件并grep对于一个字符串 grep 成功后如何执行某些操作 例如 cmd os system tail f file log grep i abc if cmd Do something and con