PYTHON 解决方案:
我想你的文件以这种方式包含数据:
1 a
4 b
5 c
2 d
这是我的示例代码,我将解释发生了什么。
files = ['test1.txt', 'test2.txt']
category_dict = dict()
for _file in files:
with open(_file, 'r') as fhl:
for line in fhl:
key, val = line.split()
if key in category_dict:
category_dict[key].append(val)
else:
category_dict[key] = [val]
print(category_dict)
打印结果:
{'1': ['a'], '4': ['b'], '5': ['c'], '2': ['d', 'g'], '3': ['a'], '6': ['c'], '7': ['f']}
首先,我创建一个简单的列表,列出我想要阅读的所有文件。请注意,您可以通过 os.walk(在线查看)从目录中获取所需的所有文件,或者您可以简单地在此列表中添加失败(完整 pat)。
files = ['test1.txt', 'test2.txt']
然后我们创建一个字典对象以您想要的方式存储我们的数据:
category_dict = dict()
然后我们遍历文件列表并打开每个文件并逐行读取:
for _file in files:
with open(_file, 'r') as fhl:
for line in fhl:
这是有趣的部分。如果文件与您上面显示的格式不完全一致,您可能会得到错误或以您想要的方式读取数据。检查您的文件并根据需要调整“split()”部分。
另外,我们拆分(网上查),基本上是把一个字符串拆分成单词列表。
key, val = line.split()
请注意,如果它们没有用空格分隔,您可能需要调整上面的行。
之后我们检查'key'是否出现在'category_dict'中,如果没有,我们创建它,然后使它等于我们从文件中获得的值的列表。如果键已经存在,这意味着我们已经为该“键”分配了一个值列表。然后我们只需附加新值。
这样您将拥有一个“类别”并分别保留每个“键”值。
编辑:
如果要将结果记录在一个文件(txt 扩展名)中,则 dict 中的每个值都要写在一个新行上,示例如下:
with open('results.txt', 'w+') as fhl:
for key in category_dict:
fhl.write('{} {}'.format(key, ' '.join(category_dict[key])))
fhl.write('\n')
结果:
1 a
4 b
5 c
2 d g
3 a
6 c
7 f