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
には、投稿した4行が含まれています(リンクした大きなファイルでも実行しました)。を使用with
すると、完了時にファイルが「自動的に」閉じられます。そうしないと、例外が発生します。
このリスト内包表記は、データファイルが開かれると、リスト内のすべてのデータを収集します。
a = [line.split()[1] for line in inf if line.startswith('ExitAddress')]
または、リスト全体を一度にメモリに収集したくない場合は、ジェネレータ式を使用できます。
g = (line.split()[1] for line in inf if line.startswith('ExitAddress'))
また、自分でファイルを閉じる必要があります。