为了账号安全,请及时绑定邮箱和手机立即绑定

python程序来合并两个文件(具有单词计数)并发出比率

python程序来合并两个文件(具有单词计数)并发出比率

HUX布斯 2021-03-18 14:10:37
我正在尝试创建一个Python函数来为我处理一些数据。我有两个看起来像这样的文本文件:文字档1:   89 man   32 is   22 the    3 best文字档2:  54 man  43 dog  34 best  13 dude我需要创建某种类型的函数textfile1来textfile2对单词进行比率。请注意,某些单词不会同时出现在两者中,但不应将它们排除在外,因为它们是分析所必需的。我不知道该如何做这部分分析。这些文件有成千上万行,不幸的是,基本的bash脚本不会帮助您。
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

我从您的问题中了解到的是,当您在两个文件中找到它们时,您想要对它们的数字进行求和,否则只需打印它们的原始值即可。您可以执行以下操作:


lines1 = [i.split() for i in open('tmp.txt').readlines()]

values,keys = zip(*lines1)

dict1 = dict( zip(keys,values) )

lines2 = [i.split() for i in open('tmp2.txt').readlines()]

values,keys = zip(*lines2)

dict2 = dict( zip(keys,values) )

dict3 = {}

for k1,v1 in dict1.items():

    v2 = dict2.get(k1)

    if v2:

        dict3[k1] = str(float(v1)/float(v2))

    else:

        dict3[k1] = v1

for k2,v2 in dict2.items():

    if not dict3.get(k2):

        dict3[k2] = v2

out = open('output.txt','w')

out.writelines(['%s\t%s\n' %\

    (k[0],dict3[k[0]]) for k in sorted(dict3.items(), key=lambda x:x[1])])

out.close()


查看完整回答
反对 回复 2021-03-30
  • 1 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信