Python练习:日期和时间操作
题目1
请写一个程序,打印出从当天开始,在一年内,所有的周日对应的日期
题目2
点击这里 下载一个日志文件 esn.log
该文件记录了购物平台的购物记录,文件格式如下
1456190061> buy product id=vscwg9mg0rg0vt44z1aq
1456071815> buy product id=35u0c7v9jccbbooabssf
1456622256> buy product id=62amh5za0wp2u7rirz75
1456203485> buy product id=m3m6ctfjqy2ykby20gzi
1456439890> buy product id=gpjr76jn74k287fgvj8f
1456021921> buy product id=d53xy60flulobpxyk95c
其中 每行 尖括号之前为数字时间戳,表示记录该行信息的时间,也就是用户购物的时间。
请写一个程序,分析该日志文件,得出一张表,记录每一天合计的购物次数,输出格式如下:
您需要高效学习,找工作? 点击咨询 报名实战班
点击查看学员就业情况
题目1-答案
from datetime import datetime,timedelta
today = datetime.now().date()
for i in range(365):
thatDay = today + timedelta(days=i)
if thatDay.weekday() == 6:
print(thatDay.strftime('%Y-%m-%d'))
题目2-答案
import time
buyTable = {}
with open('esn.log') as f:
lines = f.read().splitlines()
for line in lines:
# 如果是空行
if not line.strip():
continue
timestamp = int(line.split('>')[0])
# 转化为字符串时间,包含年月日即可
# 方便判断是否是某天
ymd = time.strftime('%Y-%m-%d',time.localtime(timestamp))
# 表中已经有当天记录,+1次
if ymd in buyTable:
buyTable[ymd] += 1
else:
buyTable[ymd] = 1
for date,times in buyTable.items():
print(f'{date} : 购物 {times} 次')