喜欢从python中的findall()返回的接口列表中读取单个接口名称

时间:2015-12-29 10:17:48

标签: python

我正在尝试从一组接口名称中读取一个接口名称,这是我在处理一些文本后得到的,如果我想使用列表读取而不是获得如下所示的输出

['GigabitEthernet1/0/8']
['GigabitEthernet1/0/8']
['GigabitEthernet1/0/2']
['GigabitEthernet1/0/2']
['GigabitEthernet1/0/1']
['GigabitEthernet1/0/1']
['GigabitEthernet1/0/1']
['GigabitEthernet1/0/5']
['GigabitEthernet1/0/5']
['GigabitEthernet1/0/2']
['GigabitEthernet1/0/2']
['GigabitEthernet1/0/2']
['GigabitEthernet1/0/2']
['GigabitEthernet1/0/2']
['GigabitEthernet1/0/2']
['GigabitEthernet1/0/1']

这是代码

时的输出

interfaces = RE_INT.findall(errormessage) print interfaces

并且

GigabitEthernet1/0/8
GigabitEthernet1/0/8
GigabitEthernet1/0/2
GigabitEthernet1/0/2
GigabitEthernet1/0/1
GigabitEthernet1/0/1
GigabitEthernet1/0/1
GigabitEthernet1/0/5
GigabitEthernet1/0/5
GigabitEthernet1/0/2
GigabitEthernet1/0/2
GigabitEthernet1/0/2
GigabitEthernet1/0/2
GigabitEthernet1/0/2
GigabitEthernet1/0/2
GigabitEthernet1/0/1 

print interfaces[0]

 `errormessage`  is the type

 <type 'str'>
 <type 'str'>
 <type 'str'>
 <type 'str'>
 <type 'str'>

和接口是类型

 <type 'list'>
 <type 'list'>

我想使用索引

获取GigabitEthernet1 / 0/8

请帮忙!

1 个答案:

答案 0 :(得分:0)

不要真正理解你想要什么,但我会尝试:

您有这种类型的代码:

for data in stream_of_log:
    interfaces = RE_INT.findall(errormessage)
    print interfaces

你想要的是(我希望):

interfaces = [RE_INT.findall(errormessage)[0] for data in stream_of_log]

因此,您可以使用以下方式访问数据:

print interfaces
print interfaces[0]
print interfaces[3]

因为你使用findall返回一个列表,你想要的只是这个列表中的数据。