Итак, я работаю в компании, и они попросили меня написать код для сравнения некоторых CSV-файлов, чтобы увидеть, существуют ли компании в обоих из них.
Проблема, с которой они сталкивались при использовании инструментов, которые они использовали, заключалась в том, что если бы, например, в одном CSV была компания Apple, а в другом - Apple, Inc, то они считались бы несопоставимыми.Поэтому я написал сценарий, который выполняет эту работу после многих проб и ошибок и огромного сокращения исходного кода, который я написал.Но я чувствую, что должен быть пакет, который делает это для вас уже написано.
import csv
import copy
newData = open("test.csv", "r")
dataBase = open("CMPList.csv", "r")
testList = list(newData)
test1List = list(dataBase)
preclin = []
cmp = []
newData.close()
dataBase.close()
notInBoth = []
for i in testList:
new = i.strip()
preclin.append(new)
for j in test1List:
new = j.strip()
cmp.append(new)
notInBoth = copy.deepcopy(preclin)
for a in preclin:
for b in cmp:
print(a, b)
if a[0] == b[0]:
if a[:4] in b[:4]:
userinput = input("Are these the same company: [" + a + "] and [" + b + "] [y for yes, n for no]\n")
if userinput == "y":
print("--------------------------------------------------------------\n")
print("["a + "] has been confirmed as the same company as [" + b + "]\n")
print("--------------------------------------------------------------\n")
notInBoth.remove(a)
if userinput == "n":
print("----------------------------------------------------------\n")
print("These companies do not match. Continuing matching process.\n")
print("----------------------------------------------------------\n")
print("All comparisons complete, creating new CSV of companies not in our database.\n")
csvFile = open('NotInDatabase.csv', 'w')
writer = csv.writer(csvFile)
for item in notInBoth:
writer.writerow([item])
csvFile.close()
print("CSV creation complete. Exiting...")