码迷,mamicode.com
首页 > 编程语言 > 详细

Python文件处理程序一例

时间:2014-11-28 18:32:45      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:python

刚才某个运维交流群中有个同学提出了以下需求:

abc 124
cba 234
abc 356
cba 244

ddd  234
我想计算这样一个文件里面第一列相同名称的 第二列和,有什么简单方法?结果要类似下面的
abc 480
cba 378


之后有位shell的大牛很快提出了解决方案:

awk ‘{a[$1]+=$2}END {for (i in a)print i,a[i]}‘ test.txt
sysadmin@sysadmin-VirtualBox:~$ cat test.txt 
abc 124
cba 234
abc 356
cba 244
cba 23232
abc 2323
ddd 234
sysadmin@sysadmin-VirtualBox:~$ awk ‘{a[$1]+=$2}END {for (i in a)print i,a[i]}‘ test.txt 
abc 2803
cba 23710
ddd 234

本人的awk实在不怎么会用,所以真心佩服这位大牛bubuko.com,布布扣

后来仔细想了想,这个需求可以用python的字典来实现,花了小二十分钟才写出来哈哈。。。

#!/usr/bin/python
dict = {}
spath1 = ‘/home/sysadmin/test.txt‘
f1 = open(spath1,‘r‘)
for line in f1.readlines():
    a = line.split()[0]
    b = line.split()[1]
    if dict.has_key(a):
        c = int(dict[a]) + int(b)
        dict[a] = c
    else:
        dict[a] = b
for key in dict:
    print key,dict[key]

不过俗话说得好:不积跬步无以至千里嘛bubuko.com,布布扣


本文出自 “葡萄呀 Enjoy your life” 博客,请务必保留此出处http://bxuan.blog.51cto.com/376592/1584052

Python文件处理程序一例

标签:python

原文地址:http://bxuan.blog.51cto.com/376592/1584052

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!