我有一个文本文件,其中包含这样的某些数据
2t05sj7jh36pl7qti1e5n9j6j0-poll-4|10/06/2015 05:32:09 pm
已存储。 2t05sj7jh36pl7qti1e5n9j6j0
是 UID,poll-4 是键,您可以看到有一个时间。另一条数据是
2t05sj7jh36pl7qti1e5n9j6j0-load-5|10/06/2015 05:32:22 pm
正如您所看到的, key 是 load-5 但 UID 是相同的。文本文件中充满了这些内容,我需要做的是计算轮询时间与加载时间的差异,并确保轮询和加载来自相同的 UID。请记住它来自文本文件。
请您参考如下方法:
基本上:
- 打开文件
- 迭代文件的行
- 使用例如用于解析每行信息的正则表达式或手动代码
- 将内存中的信息存储在 Python 列表中
- 对列表中的数据进行计算
一旦您在列表中获得了更合适格式的数据,就可以轻松地以任意顺序搜索和访问列表元素(对应于文本文件的行)。
除非文件太大,您无法承担执行此操作的内存,否则这是最直接的方法。
非常快的草稿:
records = []
reg = re.compile(r'^([a-z0-9]{26}-([^|]+)|(.+)$')
for l in open("thefile.txt").readlines():
mo = reg.match(l)
if mo is not None:
records.append(mo.groups())
然后查看records
,它将是一个每行一个元组的列表。元组的字段保存每行的三个字段。