Есть ли лучший способ сравнить строки в Python, чем то, что я написал? - PullRequest
0 голосов
/ 30 января 2019

Итак, я работаю в компании, и они попросили меня написать код для сравнения некоторых 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...")
...