Скажем, у меня есть 10 CSV-файлов, все из которых содержат похожие данные о компаниях, однако, в зависимости от компании, у одного может быть дата роспуска, а у другого может быть дополнительная адресная строка и т. Д. Мой вопрос заключается в том, как эффективно проверить текущий заголовки csv, в которые я экспортирую, и добавляйте новые заголовки в нужных местах, если мне нужно.
Это мой текущий код
import os
import csv
import requests
csvfile = "/home/User/data.csv"
# writes headers from headers.csv in preparation
def write_headers():
with open('/home/User/Documents/headers.csv') as csv_file:
csv_reader = csv.reader(csv_file)
rows = list(csv_reader)
with open(csvfile, "w") as fp:
wr = csv.writer(fp)
row = rows[0]
wr.writerow(row)
# writes row 2 from the downloaded csv as thats the row that contains the data
def write_rows(infile):
with open(infile) as csv_file:
csv_reader = csv.reader(csv_file)
rows = list(csv_reader)
with open(csvfile, "a") as fp:
wr = csv.writer(fp)
row = rows[1]
wr.writerow(row)
# downlods csv file
def download(url, file_name):
with open(file_name, "wb") as file:
response = requests.get(url)
file.write(response.content)
# saves the data to data.csv and then deletes the downloaded csv
def save_to_csv(comnum):
download("http://data.companieshouse.gov.uk/doc/company/" + comnum + ".csv",
"/tmp//" + comnum + ".csv")
write_rows("/tmp//" + comnum + ".csv")
os.remove("/tmp/" + comnum + ".csv")
Так что я могу позвонить save_to_csv с номером компании для поиска, скажем, 00000006
save_to_csv(00000006)
но у него есть дата роспуска, тогда как;
save_to_csv(00000118)
нет. Поэтому данные в строке для столбцов не совпадают, так как я не знаю, как проверить, вставляются ли данные под тем же заголовком или нет.
Есть ли библиотека, которая может сделать это, или мне нужно написать что-то, что может извлечь заголовки, переписать их и затем как-то перепроверить данные? Любая помощь очень ценится:)