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 (проверить онлайн), чтобы получить все файлы, которые вы хотите из каталога, или вы можете просто добавить ошибки в этом списке (полный патч).
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()
Примечаниечто если они не разделены пробелами, вам может потребоваться настроить строку выше.
После этого мы проверяем, представлен ли «ключ» в «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