Как искать как csv. файл в столбце, который находится в формате «дата»
Я пытаюсь написать код, который будет искать базу данных excel за месяц рождения (формат DD / MM / YYYY). Я не уверен, как искать файл, как он написан в формате «дата», тогда как все остальные файлы находятся в «общем» формате. Кто-нибудь знает как это сделать?
Мой код:
import csv dob = input('Input dob (DD/MM/YYYY): ') month = dob.split('/') with open('AddressBook.csv', newline='') as myfile: reader = csv.reader(myfile) for row in reader: if int(month[1]) in row: print(row) else: ()
Это адресная книга excel. (Нет настоящих имен или контактной информации)
- Преобразование рабочего листа Excel в CSV и сохранение имени файла в TXT. Пропустить имя файла для будущего выполнения скрипта
- Сравнение двух документов
- Объединить файлы csv, чтобы преуспеть в Python
- CSV удаляет все после 4-й запятой
- Ячейки, разделенные запятыми, в строки, но сохраняют данные в окружающих столбцах
http://i.stack.imgur.com/JLcmi.png
- Почему мой csv-писатель пишет в столбцах не строки?
- CSV неправильно форматируется
- Почему многострочные ячейки в моем файле CSV появляются с вопросительным знаком в конце каждой строки в Excel?
- Модуль Python CSV: как я могу учесть несколько таблиц в одном файле?
- Напишите файл csv в php, но также примените sort / filter
- Как исправить мою ошибку за пределами?
- Даты к категориям
- Java - csv прочитать и переписать ошибку части - где установить cmd part 3?
Вы также должны разделить дату рождения в своих данных. Вот пример:
import csv dob = input('Input dob (DD/MM/YYYY): ') date, month, year = dob.split("/") with open('AddressBook.csv', newline='') as myfile: reader = csv.reader(myfile) for row in reader: row_date, row_month, row_year = row[6].split("/") if row_month == month: print(row) # or whatever you want to print..
Поскольку ваша дата рождения находится на шестом индексе, вы разделите это. Распаковка расщепленного списка делает его немного приятнее для работы с ..
Вы также можете использовать csv.DictReader
и понимание списка:
_, month, __ = dob.split("/") with open("AddressBook.csv") as myfile: matched = [row for row in csv.DictReader(myfile) if month == row[6].split("/")[1]]
Это приведет к списку строк, которые соответствуют дате рождения.