общее решение, которое производит запись, может быть неполной, для каждого id
он встречает обработки 3 файлов необходимо использование специализированной структуры данных, к счастью, это просто список, с наперед заданным числом слотов
d = {id:[name,None,None] for id, name in [line.strip().split(',') for line in open(fn1)]}
for line in open(fn2):
id, cost = line.strip().split(',')
if id in d:
d[id][1] = cost
else:
d[id] = [None, cost, None]
for line in open(fn3):
id, desc = line.strip().split(',')
if id in d:
d[id][2] = desc
else:
d[id] = [None, None, desc]
for id in d:
if all(d[id]):
print ','.join([id]+d[id])
else: # for this id you have not complete info,
# so you have to decide on your own what you want, I have to
pass
Если вы уверены, что вы не хотите, чтобы дальнейший процесс неполных данных, код выше может быть упрощен
d = {id:[name] for id, name in [line.strip().split(',') for line in open(fn1)]}
for line in open(fn2):
id, cost = line.strip().split(',')
if id in d: d[id].append(name)
for line in open(fn3):
id, desc = line.strip().split(',')
if id in d: d[id].append(desc)
for id in d:
if len(d[id])==3: print ','.join([id]+d[id])
А что вы пробовали так фа р? Покажите нам свой код, чтобы мы могли помочь вам лучше. –
Все, что я пробовал, - это объединить данные из трех файлов в словарь и затем написать их, но я получаю ошибку. В нижеприведенном коде я пишу файл в словарь со строкой [1] как ключ и строку [2], row [3] как значение. Но я не могу добавить другой файл в тот же словарь. с открытым ('train_1.csv', 'R', кодирование = "UTF-8") в качестве файла: text_file = csv.reader (файл) следующих (text_file) для строк в text_file: maindict [строка [1 ]] = строки [2], строки [3] – Sameer
@Sameer Может захотеть отредактировать ваш вопрос с помощью этого кода, комментарии не совсем просты на глазах. – kirkpatt