从文本Python创建数组

2024-09-30 04:26:50 发布

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

我使用telnetlib进行了输入外推读取,如下所示:

  -------------------------------------------------------------------------
  SlotID  BoardName  Status          SubType0 SubType1    Online/Offline
  -------------------------------------------------------------------------
  0     
  1       H80BADPE   Normal                           
  2     
  3       H802SHGM   Normal                           
  4       H802SHGM   Normal                           
  5     
  6     
  7       H805GPFD   Normal                           
  8       H805GPFD   Normal                           
  9       H801SCUN   Active_normal                    
  10      H802SCUN   Standby_normal                   
  11      H805GPFD   Normal                           
  12      H805GPFD   Normal                           
  13      H807GPBH   Normal                           
  14      H807GPBH   Normal                           
  15      H807GPBH   Normal                           
  16      H807GPBH   Normal                           
  17      H807GPBH   Normal                           
  18      H807GPBH   Normal                           
  19      H801X2CS   Normal                           
---- More ( Press 'Q' to break ) ----                                       20    
  21      H801PRTE   Normal                           
  22    
  -------------------------------------------------------------------------

有没有一种灵活的方法来获取包含关键字“GP”的BoardName的SlotID的索引数组?如H805GPFD或H807GPBH

我需要的输出示例:

[0:[7],1:[8],2:[11]...]

谢谢


Tags: statusonlinenormalofflinetelnetlibboardnamesubtype1slotid
1条回答
网友
1楼 · 发布于 2024-09-30 04:26:50

我假设我要检查的行有3个由空格分隔的值。由于我不知道如何获得文本,我将其定义为一个名为text的字符串,并在'\n'处将其拆分,以获得单行。根据您的输入,您可能必须对其进行修改

基本思想是:我们分割线并检查是否得到3个值。如果我们得到三个值,我们将检查第二个值是否包含'GP'。如果这是真的,我们将第一个值转换为整数,并将其添加到结果列表中

text = """

                                    -
SlotID  BoardName  Status          SubType0 SubType1    Online/Offline
                                    -
0
1       H80BADPE   Normal
2
3       H802SHGM   Normal
4       H802SHGM   Normal
5
6
7       H805GPFD   Normal
8       H805GPFD   Normal
9       H801SCUN   Active_normal
10      H802SCUN   Standby_normal
11      H805GPFD   Normal
12      H805GPFD   Normal
13      H807GPBH   Normal
14      H807GPBH   Normal
15      H807GPBH   Normal
16      H807GPBH   Normal
17      H807GPBH   Normal
18      H807GPBH   Normal
19      H801X2CS   Normal
   More ( Press 'Q' to break )                                          20
21      H801PRTE   Normal
22
                                    -
"""

result = []
for line in text.split('\n'):
    parts = line.split()
    if len(parts) == 3 and 'GP' in parts[1]:
        result.append(int(parts[0]))

print(result)

这会给你带来很多好处

[7, 8, 11, 12, 13, 14, 15, 16, 17, 18]

相关问题 更多 >

    热门问题