亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將整數讀取和解析為日期

將整數讀取和解析為日期

一只斗牛犬 2022-01-18 17:40:31
我的任務的目標是從輸入文件中讀取日期,然后搜索并映射它。因此,我可以查找特定日期或獲取每個月的結束日期。我已經花了 3 天時間,但我似乎無法弄清楚如何讀取或解析文件。這是我嘗試過的:1)import datetimedef createDateList(filePath):    data = open(filePath, 'r')    dateList = []    for space in data:        month, day, year = map(int, space.split())        date1 = datetime.date(year, month, day)        dateList.append(date1)return dateList這是輸入的樣子:6 6 19707 7 20013 15 19741 7 19772 17 1983...提前致謝!
查看完整描述

2 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

第一個片段中的錯誤是因為你做了from datetime import datetime而不是import datetime之前做datetime.date.

另請注意, to 的參數datetime.date是 ordered (year, month, day)。


查看完整回答
反對 回復 2022-01-18
?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

這是一種解析日期并將它們放入列表的方法。


拆分中的正則表達式''\s|(?<=\d{4})(?=\d)'表示在四個連續數字(后跟一個數字)之后在空格或空格上拆分。這樣,年份將與月份的以下數字分開。這些是正則表達式中的后視和前瞻結構。


import re

from datetime import date


s = '6 6 19707 7 20013 15 19741 7 19772 17 1983'


dates = re.split(r'\s|(?<=\d{4})(?=\d)', s)


# get length less last 3

i = len(dates) - 3


j = 0

final_date = []


while j <= i:

    m, d, yr = dates[j:j+3]

    final_date.append(date(int(yr), int(m), int(d)))

    j += 3


for d in final_date:

    print(d)

輸出:


1970-06-06

2001-07-07

1974-03-15

1977-01-07

1983-02-17


查看完整回答
反對 回復 2022-01-18
  • 2 回答
  • 0 關注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號