Я написал скрипт на python, который открывает и читает файл CSV, имеющий следующую структуру
ID|Search Company|Past Job Title 1|Past Job Title 2|Past Job Title 3|
Затем записывает файл CSV со следующей структурой
ID|Search Company|Consolidated Company| Past Job Title 1|Past Job Title 2|Past Job Title 3|
У меня также есть следующий код Python
input_filename = 'filename.csv'
input_headers = ['ID',
'Search Company',
'Past Job Title 1',
'Past Job Title 2',
'Past Job Title 3']
output_headers = ['ID',
'Search Company',
'Consolidated Company',
'Past Job Title 1',
'Past Job Title 2',
'Past Job Title 3']
#set up the file writer
out_employees_file = open('consolidated_' + input_filename, 'wb')
employees_writer = unicodecsv.DictWriter(out_employees_file,
lineterminator='\n', escapechar='\\', fieldnames=output_headers)
#set up the file reader
employees_file = open(input_filename, 'r', encoding='utf-8')
employees_reader = csv.reader(employees_file, delimiter=',')
for row in employees_reader:
consolidated_name = ''
if 'Searched Company' != row[1]:
if row[1] in row[2]:
consolidated_name = row[2]
if row[1] in row[3]:
consolidated_name = row[3]
if row[1] in row[4]:
harmonized_name = row[4]
employees_writer.writerow({'ID': row[0],
'Consolidated Company':consolidated_name,
'Past Job Title 1':row[2],
'Past Job Title 2':row[3],
'Past Job Title 3':row[4]})
employees_file.flush()
employees_file.close()
Мой скрипт выполняется, проблема в том, что он работает только так, как ожидалось, при чтении определенных строк файла CSV. По какой-то причине Python может найти название компании, которое я ищу, только в некоторых строках файла CSV.
Я приведу пример входного файла.
ID|Search Company|Past Job Title 1|Past Job Title 2|Past Job Title 3|
1|Good Company |Bad Company | Horrid Cmp LLC |Good Company |
2|Good Company |Good Company | Rotten Company |Stupid Company |
3|Good Company |Stinky Company | Good Company |Company Malo |
Это вывод, который я получаю
ID|Search Company|Consolidated Company|Past Job Title 1|Past Job Title 2|Past Job Title 3|
1|Good Company | |Bad Company | Horrid Cmp LLC |Good Company |
2|Good Company |Good Company |Good Company | Rotten Company |Stupid Company |
3|Good Company | |Stinky Company | Good Company |Company Malo |
Мне нужно получить значение в столбце «Консолидированная компания» для каждой строки выходного файла, поскольку в каждой строке файла отображается «Хорошая компания». Однако на самом деле я вижу только то, что получаю значение только в некоторых строках.
Мне не удалось выяснить, почему мой сценарий работает для некоторых строк моего входного файла, но не работает для других строк моего входного файла. Я бы подумал, что мой сценарий будет работать на все или не работать на все, но это не так, почему это так?