在python的标准输出中搜索字符串

2024-04-29 16:37:05 发布

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

我已经编写了这段代码,它将使用paramiko模块从服务器获得某些输出。现在我正在努力找出如何搜索大于零值的输出并打印它

    cmd1 = 'statvv -d 10 -iter 1 ' + (row[2])
    stdin, stdout, stderr = ssh_client.exec_command(cmd1)
    io_check = (stdout.read().decode(encoding='ascii'))
    print(io_check)

这是我从上面得到的输出:-

16:35:04 03/10/2020 r/w I/O per second KBytes per sec    Svt ms IOSz KB

                  VVname      Cur  Avg  Max  Cur  Avg  Max  Cur  Avg Cur Avg Qlen
DW345T77-shared-NC.160   t    9    8    12   37   38   38 0.03 0.03 4.2 4.2    0
--------------------------------------------------------------------------------
                      1   t    9    9        38   38      0.03 0.03 4.2 4.2    0

16:35:10 03/10/2020 r/w I/O per second KBytes per sec    Svt ms IOSz KB

                  VVname      Cur  Avg  Max  Cur  Avg  Max  Cur  Avg Cur Avg Qlen
DCAWERB07-shared-NC.120   t    0    0    0    0    0    0    0    0   0   0   0
--------------------------------------------------------------------------------
                      1   t    0    0         0    0      0.00 0.00 0.0 0.0    0

将有数百个这样的输出。我只对“Cur”值大于零的输出感兴趣。上面的例子是命令的两个输出,其中第一个值大于零(我需要打印)。。。第二个“Cur”为零,所以我不需要它


Tags: iokbcheckstdoutsecmaxmsavg
1条回答
网友
1楼 · 发布于 2024-04-29 16:37:05

我没有什么巧妙/简单的方法来做这件事

通过输入行循环执行明显的操作:

  1. 如果这是“数据时间”行,请决定是否打印上一份报告
  2. 然后使用日期时间行作为下一个报告的开始,启动一个新报告
  3. 在收集当前报告的输入时,隔离“cur”行:If cur!=0设置标志,否则假定为false

这很难看,但是任何基于正则表达式或任何东西的方法都可能比直接方法更脆弱

相关问题 更多 >