如何在“日期”格式的列中以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通讯录。(里面没有真实的名字或联系信息)
1 个回答
1
你应该把数据中的出生日期也拆分开来。这里有个例子:
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]]
这样会得到一个包含符合指定出生日期的行的列表。