【发布时间】:2012-06-12 18:38:24
【问题描述】:
想要解析来自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
【问题讨论】:
想要解析来自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
【问题讨论】:
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'))
您还需要自己关闭文件。
【讨论】: