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 中读取所有行并将其逐行添加到集合中以供进一步使用:

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

但是由于添加了时间戳,这个解决方案并在我的集合中给了我错误的值(它也包括时间戳)。

问:如何使其更灵活,以便使用没有时间戳和有时间戳的行并仅提取适当的值?

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 回答