首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当输出以棒状方式出现在python中时,如何解析特定的输出(如行)?

当输出以棒状方式出现在python中时,如何解析特定的输出(如行)?
EN

Stack Overflow用户
提问于 2015-04-28 09:06:02
回答 1查看 65关注 0票数 1

当我运行下面的代码时,输出就是这样的。我需要输出在行中显示,只显示标题下的值。

期望产出:

代码语言:javascript
复制
caption : 3PAR
          3PAR

实际产出:

代码语言:javascript
复制
('Caption                          DeviceID             Model                            Partitions  Size         \r\r\n3PARdata VV SCSI Disk Device     \\\\.\\PHYSICALDRIVE19  3PARdata VV SCSI Disk Device     0           1069286400   \r\r\nHP P2000 G3 FC SCSI Disk Device  \\\\.\\PHYSICALDRIVE1   HP P2000 G3 FC SCSI Disk Device  1           49993251840  \r\r\nHP HSV360 SCSI Disk Device       \\\\.\\PHYSICALDRIVE7   HP HSV360 SCSI Disk Device       4           1069286400   \r\r\nHP HSV360 SCSI Disk Device       \\\\.\\PHYSICALDRIVE27  HP HSV360 SCSI Disk Device       0           1069286400   \r\r\nHP HSV360 SCSI Disk Device       \\\\.\\PHYSICALDRIVE5   HP HSV360 SCSI Disk Device       0           1069286400   \r\r\nHP P2000 G3 FC SCSI Disk Device  \\\\.\\PHYSICALDRIVE23  HP P2000 G3 FC SCSI Disk Device  1           49993251840  \r\r\n3PARdata VV SCSI Disk Device     \\\\.\\PHYSICALDRIVE13  3PARdata 

代码:

代码语言:javascript
复制
p5=subprocess.Popen("rsh -l Administrator 10.10.11.37 \"wmic diskdrive list brief\"",stdout=subprocess.PIPE, shell=True)


result = p5.communicate()
status = p5.wait()
print(result),
EN

回答 1

Stack Overflow用户

发布于 2015-04-28 09:40:25

如果只希望Caption下的值,那么使用reDisk Device后的空格上拆分,这在所有标题行中都很常见:

代码语言:javascript
复制
result = """Caption                          DeviceID             Model                            Partitions  Size         \r\r\n3PARdata VV SCSI Disk Device     \\\\.\\PHYSICALDRIVE19  3PARdata VV SCSI Disk Device     0           1069286400   \r\r\nHP P2000 G3 FC SCSI Disk Device  \\\\.\\PHYSICALDRIVE1   HP P2000 G3 FC SCSI Disk Device  1           49993251840  \r\r\nHP HSV360 SCSI Disk Device       \\\\.\\PHYSICALDRIVE7   HP HSV360 SCSI Disk Device       4           1069286400   \r\r\nHP HSV360 SCSI Disk Device       \\\\.\\PHYSICALDRIVE27  HP HSV360 SCSI Disk Device       0           1069286400   \r\r\nHP HSV360 SCSI Disk Device       \\\\.\\PHYSICALDRIVE5   HP HSV360 SCSI Disk Device       0           1069286400   \r\r\nHP P2000 G3 FC SCSI Disk Device  \\\\.\\PHYSICALDRIVE23  HP P2000 G3 FC SCSI Disk Device  1           49993251840  \r\r\n3PARdata VV SCSI Disk Device     \\\\.\\PHYSICALDRIVE13  3PARdata"""
import re
spl = result.splitlines()
print(spl[0].split()[0].rstrip())
for line in spl[1:]:
    if line:
        print(re.split("(?<=Disk Device)\s+",line,1)[0])

Caption
3PARdata VV SCSI Disk Device
HP P2000 G3 FC SCSI Disk Device
HP HSV360 SCSI Disk Device
HP HSV360 SCSI Disk Device
HP HSV360 SCSI Disk Device
HP P2000 G3 FC SCSI Disk Device
3PARdata VV SCSI Disk Device
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29914990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档