【发布时间】:2012-09-27 01:23:17
【问题描述】:
2012-05-10 布拉德 10
2012-05-08 布拉德 40
2012-05-08 布拉德 60 >
2012-05-12 TOM 100
我想要输出为
2012-05-08 BRAD|2|100
2012-05-10 BRAD|1|10
2012-05-12 TOM|1|100
我从这段代码开始::
import os,sys
fo=open("meawoo.txt","w")
f=open("test.txt","r")
fn=f.readlines()
f.close()
for line in fn:
line = line.strip()
sline = line.split("|")
p = sline[1].split(" ")[0],sline[2],sline[4]
print p
fo.writelines(str(p)+"\n")
fo.close()
o_read = open("meawoo.txt","r")
x_read=o_read.readlines()
from operator import itemgetter
x_read.sort(key=itemgetter(0))
from itertools import groupby
z = groupby(x_read, itemgetter(0))
print z
for elt, items in groupby(x_read, itemgetter(0)):
print elt, items
for i in items:
print i
It will be very helpful if u suggest me some usefull changes to my work.TIA
【问题讨论】:
-
用文字更准确地描述您要完成的工作。你还说你有一个文件,但你的代码打开了两个文件。
-
只要告诉我我是否有一个数据为:: 2012-05-10 BRAD 6 2012-05-10 BRAD 4 2012-05-08 BRAD 20 我如何得到这个:: 2012 -05-08 BRAD|1|20 2012-05-10 BRAD|2|10 即 Groupby DATE Groupby NAME|Len(NAME)|SUM(VALUES)
标签: python string string-parsing group-by