概述
"year calendar.json":根据前文思路,我们首先需要判断是否存在year calendar,如果不存在,则生成,存在,则读取。
本例设计的json文件数据格式为年、周、日期,如下图1:↑图1:Json文件数据格式
实现代码:
# -*- coding: utf-8 -*-
import calendar
import json
# 一年划分为53周,其中第1周及第53周的空缺日期由''填充。
# 定义空字典cal_list,用于储存完整日历信息
cal_list = dict()
# 定义year_range,用于确定日历起始年
year_range = range(2000, 2050)
# 循环:一个循环为一年
for year in year_range:
# 定义list用于储存全年日期
list = []
# list的空日期使用''补全
for i in range(calendar.monthrange(year, 1)[0]):
list.append('')
# 将year年的每月日期加入list变量
for mon in range(1, 13):
for day in range(calendar.monthrange(year, mon)[1]):
agent = str(day + 1) + '/' + str(mon)
list.append(agent)
# 定义year_calendar用于保存按周分割的全年日期
year_calendar = []
# 按周分割list的全年日期
for j in range(len(list) // 7 + 1):
year_calendar.append(list[j * 7:(j + 1) * 7])
# year_calendar可能存在末组为空(当年末为周日时),判断并删除
if year_calendar[len(year_calendar) - 1] == []:
del year_calendar[len(year_calendar) - 1]
# 将年末一周的空白日期用''补全
if len(year_calendar[len(year_calendar) - 1]) < 7:
for k in range(7 - len(year_calendar[len(year_calendar) - 1])):
year_calendar[len(year_calendar) - 1].insert(len(year_calendar[len(year_calendar) - 1]), '')
# 定义字典cal用于存储year年的,按周分割的全年日期
cal = {}
# 将year_calendar的周数及日期列表存入年字典cal中
for week_num in range(len(year_calendar)):
cal[week_num + 1] = year_calendar[week_num]
# 将cal存入完整日历字典cal_list中
cal_list[year] = cal
# 循环完成后,将cal_list转化成字符串并保存为'year_calendar.json',覆盖原文件
cal_list = json.dumps(cal_list)
with open('year_calendar.json', 'w') as f:
f.write(cal_list)
最后
以上就是自然树叶为你收集整理的python连续输出月历_使用Python实现简易月历生成(1)的全部内容,希望文章能够帮你解决python连续输出月历_使用Python实现简易月历生成(1)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复