2011-11-15 69 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

像這樣的「智能」軟件的問題是,如果您的輸入有日期格式混合(「我們」貓「我們從我們的全球子公司獲得的所有文件」),則混亂不會被檢測到。 –

相關問題