У меня есть два CSV-файла.Я хочу взять каждую строку по очереди из csv1, найти ее запись в csv 2 и затем извлечь другую информацию для этой строки из csv2.
Я борюсь с элементами, которые я ищу, это названия компаний.И в csv1, и в csv2 они могут иметь или не иметь суффикс «LTD, LTD, Limited или LIMITED» в названии, поэтому я бы хотел, чтобы запрос не включал эти подстроки в запрос.Мой код все еще только находит точные совпадения, а не игнорирует 'Ltd' и т. Д. Я предполагаю, что именно так я комбинирую 'row [0]' с запросом регулярного выражения, но не могу понять это.
Код
import re, csv
with open (r'c:\temp\noregcompanies.csv', 'rb') as q:
readerM=csv.reader(q)
for row in readerM:
companySourcename = row[0]+"".join(r'.*(?!Ltd|Limited|LTD|LIMITED).*')
IBcompanies = re.compile(companySourcename)
IBcompaniesString = str(companySourcename)
with open (r'c:\temp\chdata.csv', 'rb') as f:
readerS = csv.reader(f)
for row in readerS:
companyCHname = row[0]+"".join(r'.*(?!Ltd|Limited|LTD|LIMITED)*')
CHcompanies = re.compile(companyCHname)
if CHcompanies.match(IBcompaniesString):
print ('Match is: ',row [0], row[1])
with open (r'c:\temp\outputfile.csv', 'ab') as o:
writer = csv.writer(o, delimiter=',')
writer.writerow(row) t