Мне было предложено выйти из моей зоны комфорта и использовать питон с небольшим опытом и теперь я застрял. Я пытаюсь сравнить два файла CSV (fileA.csv и fileB.csv) и добавить любые отсутствующие строки пользователя в файлA.csv из fileB.csv. Единственными полями, с которыми я могу сравнить, являются имена и фамилии пользователя (в данном случае это строка [0] и строка [2] из каждого файла).Сравнение двух файлов CSV на основе конкретных данных в двух столбцах
С моей точки зрения, вы не можете добавлять информацию к файлу, который у вас в настоящее время открыт, поэтому я открыт для предложений, не создавая третий файл (если это возможно). Ниже я на правильном пути, но есть много данных, поэтому мне понадобится цикл. Пожалуйста помоги.
import csv
reader1 = csv.reader(open('fileA', 'rb'), delimiter=',', quotechar='|')
row1 = reader1.next()
reader2 = csv.reader(open('fileB', 'rb'), delimiter=',', quotechar='|')
row2 = reader2.next()
##For Loop...
if (row1[0] == row2[0]) and (row1[2] == row2[2]):
## Compare next
else:
## Append entire row to fileA.csv
Пример FileA.csv:
John,Thomas,Doe,some,other,stuff
Jane, ,Smith,some,other,stuff
Пример FileB.csv:
John, ,Doe,other,personal,data
Jane,Elizabeth,Smith,other,personal,data
Robin,T,Williams,other,personal,data
Единственная строка, которая должна добавляемых из FILEB к FILEA завершения строки Робин так, чтобы FileA выглядит так:
DesiredR esult_FileA:
John,Thomas,Doe,some,other,stuff
Jane, ,Smith,some,other,stuff
Robin,T,Williams,other,personal,data
Является ли этот синтаксис правильно? file_a, open ('fileB', 'rb') as file_b: – justin
@justin: он находится в Python 2.7. В более ранних версиях просто вставьте два (так что сделайте их отдельными строками и отступом на один уровень дополнительно). –
@ DSM: Спасибо за исправление. –