如何在“日期”格式的列中以CSV文件方式搜索

0 投票
1 回答
1364 浏览
提问于 2025-04-18 04:28

我正在尝试写一段代码,去查找一个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通讯录。(里面没有真实的名字或联系信息)

https://i.stack.imgur.com/JLcmi.png

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]]

这样会得到一个包含符合指定出生日期的行的列表。

撰写回答