首页 > 解决方案 > 尝试比较文本文件中的多行并通过加入它们来打印

问题描述

如何比较多行并根据第一个单词加入行(如果它们相同)使用 python 我是 python 的初学者并尝试比较文本文件中的多行并通过加入它们来打印。

文本文件

Rolt12 is a musician
Rolt1 is dancer
Rolt1 is an actor
Rolt14 is a singer

我正在尝试打印

Rolt12 is a musician
Rolt1 is a dancer; is an actor
Rolt14 is a singer

到目前为止,我知道打开和写入文件

with open ('input.txt','r') as ifh, with open ('out.txt', 'w') as ofh:
    ifh.readlines()

在此之后,我想我应该比较文本文件中的行并检查第一个是否相同。稍后,如果第一个单词相同,请加入他们。但我不知道如何比较和加入他们。任何帮助将不胜感激......谢谢

标签: python

解决方案


您可以使用字典将每一行分成两部分来解决它,一个带有“名称”,另一部分(没有名称的行的其余部分)。使用名称作为字典中的键。

from collections import defaultdict
with open('data.txt') as fp:
    d = defaultdict(list)
    for line in fp:
        x = line.strip().split(' ', 1)
        d[x[0]].append(x[1])

#writing output to new file
with open('output.txt', 'w') as fw:
    for k, v in d.items():
        fw.write( k + ' ' + '; '.join(v) + '\n')

输出:

Rolt12 is a musician
Rolt1 is dancer; is an actor
Rolt14 is a singer

推荐阅读