在Python中提取特定字符串

时间:2012-11-22 15:15:38

标签: python string

我在某个时刻有了日志文件,我添加了timestam创建,现在它看起来像这样:
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()

但是自从timestam添加了这个解决方案并在我的集合中给出了错误的值(它还包括timestam)。

问:如何使其更灵活,所以它没有时间线和WITH时间线,只提取适当的值?

1 个答案:

答案 0 :(得分:2)

只需解析时间戳。分割到空格后,ln.split()[-1]将返回最后一个元素,这似乎是你所追求的,所以

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

(使用生成器理解来替换你的循环。不再需要strip(),因为split()删除了所有空格。)