2012-06-12 32 views
0

想要从exit-addresses解析IPv4地址。该文件的格式:解析器出口地址列表

ExitNode 006C3FA7C3F6E3ACD13D0DD9B10C7DFA933C237B 
Published 2012-06-12 05:04:03 
LastStatus 2012-06-12 06:03:22 
ExitAddress 220.0.231.71 2012-06-12 10:23:05 

回答

2
with open('data.txt') as inf: 
    for line in inf: 
     if line.startswith('ExitAddress'): 
      print line.split()[1] 

会给你

220.0.231.71 

其中data.txt包含您的评论(我也与你链接到大文件,运行它)四大行。当你完成后,使用with也会“自动”关闭你的文件,或遇到异常。

list comprehension将收集的所有数据在您的列表,一旦数据文件已被打开:

a = [line.split()[1] for line in inf if line.startswith('ExitAddress')] 

或另外,如果你不想在收集内存中的整个列表一次,你可以使用一个generator expression

g = (line.split()[1] for line in inf if line.startswith('ExitAddress')) 

你也会照顾自己关闭文件。

+0

没有必要拆分()每一行,只有当条件为真时才可以拆分。 – jordanm