将字符串从.csv转换为datetime以判断它是否是特定的工作日

时间:2017-02-15 21:19:13

标签: python csv

我正在读取一个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模块确定该条目的日期是星期五?我正在研究我的技能,这将有很大帮助。感谢。

3 个答案:

答案 0 :(得分:1)

您可以使用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

答案 1 :(得分:0)

如果日期始终位于第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

答案 2 :(得分:0)

您可以使用在datetime(documentation)中找到的工作日()。

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:星期天