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
4

1 に答える 1

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には、投稿した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'))

また、自分でファイルを閉じる必要があります。

于 2012-06-12T18:40:59.150 に答える