Я пытаюсь сохранить результаты поиска regex .findall() в csv, но у меня возникают трудности с добавлением результата в выходной файл.
Поскольку я все еще очень новичок в Python, я пытаюсь ограничить эту проблему использованием только библиотек csv и re, но если есть гораздо более простой способ (например, в pandas), это также было бы полезно знать.
Как можно скопировать все содержимое входного CSV в выходной CSV и добавить почтовый индекс/найденное регулярное выражение в строку, в которой оно было найдено?
Существуют ли какие-либо очевидные формы проверки ошибок или другие вещи, которые мне не хватает?
Существует ли лучший метод для автоматического добавления заголовка входного CSV в выходной CSV без их явного указания?
Можно ли это сделать с помощью DictWriter? Как я изначально и пытался.
import csv, re
pattern = r'[A-Z]{1,2}[0-9R][0-9A-Z]?[0-9][A-Z]{2}'
postcodes = []
with open(r'Postcode/addressin.csv', 'r') as csvinput:
csv_reader = csv.DictReader(csvinput)
with open(r'Postcode/addressout.csv', 'w', newline='') as csvoutput:
fieldnames = ['Address', 'Name']
csv_writer = csv.writer(csvoutput)
csv_writer.writerow(fieldnames)
for line in csv_reader:
postcodes = re.findall(pattern, line["Address"])
csv_writer.writerow(postcodes)
Пример данных:
Address,Name,Lat,Long,2016 Sales,Type
48 Park Avenue, LATTON, SN6 4SZ,Nikki Yellowbeard,-23.17549,36.74641,9727,AA
IV21 1TD 116 Walwyn Rd CHARLESTOWN,Jonh Doe,-10.98309,156.41854,11932,AE