2017-09-03 56 views
2
import re 
a = (''' 
Gi1/0       up    up  test 
Fa2/0       up    up  CloudInterface 
Fa2/1       up    up  CloudInterface 
Fa3/0       up    up  test 
''') 


for b in a: 
    b = a.split("\n") 
    for line in b: 
     if 'CloudInterface' in b: 
      line = b.split(' ') [0] 
      print (line) 

「」」 我怎樣才能得到下面的值?副本屬性上線Python表達式

Fa2/0 
Fa2/1 
+0

https://stackoverflow.com/help/how-to-ask –

回答

0

你做很多簡單的錯誤,但你可以嘗試,而且首先是for b in a: - 環焦成炭您a變量中,將其刪除。

b = a.split("\n") 
for line in b: 
    if 'CloudInterface' in line: 
     line1 = line.split(' ')[0] 
     print (line1) 
0

使用列表理解

您可以使用列表理解來做到這一點:

[l.split(" ")[0] for l in a.split("\n") if "CloudInterface" in l] 

返回的項目清單:

['Fa2/0', 'Fa2/1'] 

的理解循環通過在newlines處拆分a.split('\n')來完成每一行。然後在每一行上檢查"CloudInterface"是否在行中。如果是,請將字符串返回到第一個空格l.split(' ')[0]

希望這對你的作品,並在一開始定義'a'時,你不需要括號:

a = ''' 
Gi1/0       up    up  test 
Fa2/0       up    up  CloudInterface 
Fa2/1       up    up  CloudInterface 
Fa3/0       up    up  test 
'''