解析executab的输出

2024-09-27 17:51:04 发布

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

我正在尝试运行一个可执行文件并解析其输出,将行与QDLoader 9008匹配,然后获取COM端口值,脚本的输出应该是COM75。 我下面的脚本没有打印匹配字符串的行,为什么?你知道吗

import os
import re
import subprocess
'''
C:\Dropbox\h_loader>lsusb.exe
Communications Port (COM1)
Intel(R) Active Management Technology - SOL (COM3)
COMPANY HS-USB QDLoader 9008 (COM75)
COMPANY HS-USB Diagnostics 9025 (COM64)
COMPANY HS-USB NMEA 9025 (COM63)
COMPANY HS-USB Diagnostics 9091 (COM81)

'''

cmd = 'lsusb.exe'
proc = subprocess.Popen(cmd.split(' '), stdout=subprocess.PIPE, stderr=subprocess.PIPE)

(output, error) = proc.communicate()
QD_line = re.search('QDLoader 9008',output)
print QD_line


EXPECTED OUTPUT:-
  COM75

Tags: importre脚本cmdprocexecompanyusb
1条回答
网友
1楼 · 发布于 2024-09-27 17:51:04

re.search返回match object,而不是字符串。即使它返回一个字符串,它也不可能返回COM75-regex不能读懂你的想法,它怎么知道你期望的输出呢?你知道吗

您需要更改模式以捕获您感兴趣的输出部分:

match= re.search(r'QDLoader 9008 \((\w*)\)',output)

然后访问捕获的字符串:

print match.group(1)

相关问题 更多 >

    热门问题