a={}
for i in open(r'C:\Users\Administrator\Desktop\1.txt'):
lines = re.split('\s+', i)
if lines in a:
a] += int(lines)
else:
a] = int(lines)
print a
回复 1# waq1012030438
import re,os
a={}
for i in open(r'C:\Users\Administrator\Desktop\1.txt'):
lines = re.split('\s+', i)
if lines in a:
a] += int(lines)
else:
a] = int(lines)
fo = open(r'C:\Users\Administrator\Desktop\new.txt','w')
for j in a:
fo.write(j + ' ' + str(a) + os.linesep)
fo.close()
本帖最后由 Hadron74 于 2014-10-23 19:11 编辑
回复 1# waq1012030438
就这个问题来说没有必要用python,用Linux下的shell命令一行搞定:
cut -f 3 -d ' ' a.log | sort | uniq -c
也可以用awk, 这里就不写了。C:\Users\luhongc>cat -> a.log
2014 1 189mail
2014 2 189mail
2014 2 reader
2014 1 cloud
2014 2 cloud
2014 3 189mail
C:\Users\luhongc>cut -f 3 -d ' ' a.log | uniq -c
3 189mail
1 reader
2 cloud
>>> s
'\n2014 1 189mail\n2014 2 189mail\n2014 2 reader\n2014 1 cloud\n2014 2 cloud\n2014 3 189mail\n'
>>> l =[ x.split() for x in s.strip().split('\n') ]
>>> for i in set(l):
... print i,l.count(i)
...
189mail 3
cloud 2
reader 1
页:
1
[2]