猿问

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

我正在尝试创建一个Python函数来为我处理一些数据。我有两个看起来像这样的文本文件:


文字档1:


   89 man

   32 is

   22 the

    3 best

文字档2:


  54 man

  43 dog

  34 best

  13 dude

我需要创建某种类型的函数textfile1来textfile2对单词进行比率。请注意,某些单词不会同时出现在两者中,但不应将它们排除在外,因为它们是分析所必需的。我不知道该如何做这部分分析。这些文件有成千上万行,不幸的是,基本的bash脚本不会帮助您。


HUX布斯
浏览 120回答 1
1回答

森林海

我从您的问题中了解到的是,当您在两个文件中找到它们时,您想要对它们的数字进行求和,否则只需打印它们的原始值即可。您可以执行以下操作: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] = v1for k2,v2 in dict2.items():    if not dict3.get(k2):        dict3[k2] = v2out = 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()
随时随地看视频慕课网APP

相关分类

Python
我要回答