首页 > 代码库 > Python文件处理程序一例
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实在不怎么会用,所以真心佩服这位大牛
后来仔细想了想,这个需求可以用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]
不过俗话说得好:不积跬步无以至千里嘛
本文出自 “葡萄呀 Enjoy your life” 博客,请务必保留此出处http://bxuan.blog.51cto.com/376592/1584052
Python文件处理程序一例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。