"
我只是做一个很小的程序合并文件,我有三个文件,每个文件有两列,一列ID, 一列分子密码,我希望合并三个文档以id重复的删去重复行。本人初学python,不太会。
比如文件一:
Z0121 banana
Z0122 apple
第二个文件:
Z0122 raisin
Z023 peach
我最后想得到:
Z0121 banana
Z0122 apple
Z0123 peach
"cat 1.txt 2.txt |awk '{if(!($1 in a)){print;}a[$1]=1;}'
######<pre class=""brush:python; toolbar: true; auto-links: false;"">from StringIO import StringIO import csv
#模拟文件对象 s1 = StringIO( ''' Z0121 banana Z0122 apple ''') s2 = StringIO(''' Z0122 raisin Z0123 peach ''')
m1 = {} m2 = {}
#csv方式读文件 csv1 = csv.DictReader(s1, fieldnames=['id','name'], delimiter=' ', skipinitialspace=True, dialect='excel') for row in csv1: print row m1[row['id']] = row['name']
csv2 = csv.DictReader(s2, fieldnames=['id','name'], delimiter=' ', skipinitialspace=True, dialect='excel') for row in csv2: print row m2[row['id']] = row['name']
#m2合并到m1 for k, v in m2.items(): if k not in m1: m1[k] = v print m1
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。