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
[email protected]:~$ cat test.txt 
abc 124
cba 234
abc 356
cba 244
cba 23232
abc 2323
ddd 234
[email protected]:~$ 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]

不过俗话说得好:不积跬步无以至千里嘛

时间: 2024-08-03 18:34:30

Python文件处理程序一例的相关文章

转载:python文件打开方式详解——a、a+、r+、w+区别

第一步 排除文件打开方式错误: r只读,r+读写,不创建 w新建只写,w+新建读写,会将文件内容清零 (以w方式打开,不能读出.w+可读写) **w+与r+区别: r+:可读可写,若文件不存在,报错:w+: 可读可写,若文件不存在,创建 r+与a+区别: [python] view plain copy print? <span style="background-color: rgb(255, 255, 255);">fd = open("1.txt"

如何调用另一个python文件中的代码

如何调用另一个python文件中的代码 无论我们选择用何种语言进行程序设计时,都不可能只有一个文件(除了"hello world"),通常情况下,我们都需要在一个文件中调用另外一个文件的函数呀数据等等,总之要操作其他文件中的代码,在java中,只要在同一个文件目录下,我们就不需要通过import导入,但是在Python中,我们就需要通过import来进行导入,这样我们才能应用其他文件中定义的函数和数据等代码. 对于刚接触python的我们,这是我们需要掌握的. 下面就以两个文件为例,例

Python 文件I/Oday14

本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下: #!/usr/bin/python   print "Python is really a great language,", "isn't it?"; 你的标准屏幕上会产生以下结果: Python is really a grea

python文件写入后读出空字符、读出乱码的解决方案

第一步 排除文件打开方式错误: r只读,r+读写不创建,w新建写,w+新建写创建,a附加,b二进制文件 以w,w+的方式打开文件,会将文件内容清零 (以w方式打开,不能读出.w+可读写) 以r,r+的方式打开文件,不会清零 (r+:可读可写,若文件不存在,报错:w+: 可读可写,若文件不存在,创建) 以a,a+的方式打开文件,附加打开 (a:附加写方式打开:a+: 附加读写方式打开) 以 'U' 标志打开文件, 所有的行分割符通过 Python 的输入方法(例#如 read*() ),返回时都会

Python文件和目录操作实例代码

对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这些函数无论是在Unix.Windows还是Macintosh平台上,它们的使用方式是完全一致的. 本文将详细解释这些函数的使用方法.首先,介绍Python语言中类似于Windows系统的dir命令的列出文件功能,然后描述如何测试一个文件名对应的是一个标准文件.目录还是链接,以及提取文件大小和日期的方法.之后,还将介绍如何删除文件和目录

【转】python文件打开方式详解——a、a+、r+、w+区别

原文地址:http://blog.csdn.net/ztf312/article/details/47259805 第一步 排除文件打开方式错误: r只读,r+读写,不创建 w新建只写,w+新建读写,二者都会将文件内容清零 (以w方式打开,不能读出.w+可读写) **w+与r+区别: r+:可读可写,若文件不存在,报错:w+: 可读可写,若文件不存在,创建 r+与a+区别: fd = open("1.txt",'w+') fd.write('123') fd = open("

Python 文件IO

Python 文件I/O 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下: #!/usr/bin/python # -*- coding: UTF-8 -*- print ("Python 是一个非常棒的语言,不是吗?") 你的标准屏幕上会产生以下结果: Python 是一个非常棒的语言,不是吗? 读取键盘输入 在Python2提供了两个内置函数从标准输入读入一行文本,默

python文件打开方式详解——a、a+、r+、w+区别

出处: http://blog.csdn.net/ztf312/ 第一步 排除文件打开方式错误: r只读,r+读写,不创建 w新建只写,w+新建读写,二者都会将文件内容清零 (以w方式打开,不能读出.w+可读写) w+与r+区别: r+:可读可写,若文件不存在,报错:w+: 可读可写,若文件不存在,创建 r+与a+区别: [python] view plain copy print? fd = open("1.txt",'w+') fd.write('123') fd = open(&

Python文件打开方式详解——r,w,a,r+,w+,a+

r,r+,w,w+,a,a+作用 r 只读 不创建 r+ 读写 w 新建只写 二者都会将文件清空 w+ 新建读写 a 附加写方式打开,不可读 a+ 附加读写方式打开 w+与r+区别: r+ 可读可写,若文件不存在,报错 w+ 可读可写,若文件不存在,创建 r+与a+区别: fd = open("1.txt",'w+') fd.write('123') fd = open("1.txt",'r+') fd.write('456') fd = open("1.