python程序合并文件怎么做 - python报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

python程序合并文件怎么做 - python报错

montos 2020-06-04 14:00:58 71

"

我只是做一个很小的程序合并文件,我有三个文件,每个文件有两列,一列ID, 一列分子密码,我希望合并三个文档以id重复的删去重复行。本人初学python,不太会。

比如文件一:
Z0121  banana
Z0122  apple

第二个文件:
Z0122   raisin
Z023  peach

我最后想得到:
Z0121 banana
Z0122  apple
Z0123  peach

"
Python
分享到
取消 提交回答
全部回答(1)
  • montos
    2020-06-04 16:46:13

    "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



    ######

    引用来自“周翼翼”的评论

    cat 1.txt 2.txt |awk '{if(!($1 in a)){print;}a[$1]=1;}'
    不好意思,我要的不是这个,我需要的是它忽略水果名不同只要id,如果水果名不同取第一文件中对应的水果名,而且你写的不是python指令######还有别的答案吗?"
    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程