如何读取文件并将每行转换为日期?
好的,我有一个“holiday.txt”文件,我打算让Python读取。在其中,我希望有这样的行:
11/24/11
11/25/11
12/25/11
12/31/11
1/1/12
5/28/12
7/4/12
9/3/12
等。这些是我公司的假期。我希望程序读取这些内容,并将它们转换为日期(?)对象,这些对象可以通过timedelta修改或与电子邮件发送的日期进行比较。基本上我想在我的程序中确保这里列出的任何日期都不会发送电子邮件(但这是我要编写的,我只想将所有日期转换为时间对象)
答案 0 :(得分:4)
您可以使用datetime.strptime将字符串转换为datetime.datetime
个对象:
import datetime as dt
dates=[]
with open('holiday.txt','r') as f:
dates=[dt.datetime.strptime(line.strip(),'%m/%d/%y')
for line in f if line.strip()]
print(dates)
答案 1 :(得分:0)
请参阅Python datetime文档
import time, datetime
time_format = "%m/%d/%y"
holidays = []
f = open('holiday.txt', 'r')
for line in f:
date = datetime.datetime.fromtimestamp(time.mktime(time.strptime(line, time_format)))
holidays.append(date)
答案 2 :(得分:0)
我总是使用
dateutil.parser.parse
因为您不需要输入时间格式,所以您可以执行
from dateutil.parser import parse as dateparser
inputfile = open(<filename>,'r')
[dateparser(line) for line in f]
你会得到一个datetime.datetime对象列表