我有一个文本文件,其中包含这样的某些数据

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。请记住它来自文本文件。

请您参考如下方法:

基本上:

  1. 打开文件
  2. 迭代文件的行
  3. 使用例如用于解析每行信息的正则表达式或手动代码
  4. 将内存中的信息存储在 Python 列表中
  5. 对列表中的数据进行计算

一旦您在列表中获得了更合适格式的数据,就可以轻松地以任意顺序搜索和访问列表元素(对应于文本文件的行)。

除非文件太大,您无法承担执行此操作的内存,否则这是最直接的方法。

非常快的草稿:

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,它将是一个每行一个元组的列表。元组的字段保存每行的三个字段。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!