0

ある時点でタイムスタムの作成を追加したログファイルがあり、次のようになります。
log.txt:

327555
327563
327570
327601
2012-11-19 22:21:37 :: 327001
2012-11-19 22:21:37 :: 327004
2012-11-19 22:21:37 :: 327007
2012-11-19 22:21:37 :: 327008

私のPythonスクリプトでは、log.txtからすべての行を読み取り、さらに使用するために1行ずつセットに追加していました。

log_file = open('log.txt')
set_log = set([])
for line in log_file:
    set_log.add(line.strip())
log_file.close()

しかし、タイムスタムがこのソリューションに追加されたため、セットに間違った値が表示されます(タイムスタムも含まれます)。

Q:それをより柔軟にして、タイムスタムなしとタイムスタムありの線を使用し、適切な値のみを抽出するにはどうすればよいですか?

4

1 に答える 1

2

タイムスタンプを解析するだけです。ln.split()[-1]空白で分割した後、最後の要素を返します。これはあなたが求めているもののようです。

set_log = set(ln.split()[-1] for ln in log_file)

(ジェネレーター内包表記を使用してループを置き換えます。すべての空白が削除strip()されるため、これは不要になりました。)split()

于 2012-11-22T15:17:43.960 に答える