2011-11-15 70 views
1

如何读取文件并将每行转换为日期?如何将输入文件数据转换为日期格式?

好吧,我有一个“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进行修改,或者与电子邮件将要发送的日期进行比较。基本上我想在我的程序中确保这里列出的任何日期都不会有电子邮件发送给他们(但这是我会写的,我只是想将所有日期转换为时间对象)

回答

4

你可以使用到字符串转换成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) 
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)  
+1

日期时间有strptime方法,没有必要使用时间。 – rplnt

0

我总是用

dateutil.parser.parse 

因为一个并不需要输入时间格式,所以你可以做

from dateutil.parser import parse as dateparser 

inputfile = open(<filename>,'r') 

[dateparser(line) for line in f] 

和你得到的datetime.datetime对象的列表

+0

像这样的“智能”软件的问题是,如果您的输入有日期格式混合(“我们”猫“我们从我们的全球子公司获得的所有文件”),则混乱不会被检测到。 –

相关问题