如何将输入文件数据转换为日期格式?

1 投票
3 回答
962 浏览
提问于 2025-04-17 06:22

我想知道怎么读取一个文件,把每一行转换成日期。

我有一个叫“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)来修改这些日期,或者和发送邮件的日期进行比较。简单来说,我想确保在我的程序里,任何列出的日期都不会发送邮件(不过这个我会自己写,我只是想把所有日期转换成时间对象)。

3 个回答

0

我总是使用

dateutil.parser.parse

因为这样就不需要输入时间格式,你只需要这样做

from dateutil.parser import parse as dateparser

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

[dateparser(line) for line in f]

这样你就能得到一系列的日期时间对象了

0

请查看Python的日期时间文档

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)    
3

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

撰写回答