将字符串从.CSV转换为DateTime,以确定是否是特定的工作日



我正在用csv文件读取并按列表形式打印它,因此它像这样打印:

['1555', 'A rotary phone', '6/25/16', '$186 ']
['1444', 'A top hat', '10/5/16', '$77 ']
['1666', 'A turtle', '9/28/16', '$198 ']

我可以编写哪个代码以获取每行日期,并确定该条目的日期是否是使用DateTime模块的星期五?我正在研究自己的技能,这将有很大帮助。谢谢。

您可以使用 datetime.datetime.strptime :( documentation)

>>> from datetime import datetime
>>> datetime_obj = datetime.strptime('6/25/16', '%m/%d/%y')
>>> datetime_obj.weekday()
5

功能:

def is_friday(l):
    return datetime.strptime(l[2], '%m/%d/%y') == 5

甚至:

is_friday = lambda l: datetime.strptime(l[2], '%m/%d/%y') == 5
>>> is_friday(['1555', 'A rotary phone', '6/25/16', '$186 '])
False

如果日期始终处于位置2,则可以使用datetime.strptime()功能检索工作日,看看是否是星期五。

from datetime import datetime
l = ['1555', 'A rotary phone', '6/25/16', '$186 ']
t = datetime.strptime(l[2], "%m/%d/%y")
t.weekday() # Will return 0 for Monday, 1 Tuesday and so on

您可以使用DateTime(文档)中找到的工作日()。

import datetime
#                          this string manipulation adds the '20' to make the date '2016'
datetime.datetime.strptime(lineOfCSV[2][:-2]+'20'+lineOfCSV[2][-2:], "%m/%d/%Y").date().weekday()

这将返回一个与工作日相匹配的INT:0:星期一1:星期二2:星期三3:星期四4:星期五5:星期六6:星期日

最新更新