用Python实现一本个性化日历
作者:程序员二飞 发布时间:2021-02-11 08:59:44
前言
哈喽铁汁们~新年到了,很多小伙伴都会买上一本日历。现在各种主题各种式样的日历有很多,不过你有没有想过自己定制一套专属的个性化电子日历呢?
今天小编就教大家如何用python生成一个日历。
一、准备
开始之前,你要确保Python和pip已经成功安装在了电脑上。如果没有,可以在公众号“Crossin的编程教室”里回复关键字 安装,查看相关演示教程。另外,如果你用Python的目的是做数据分析,可以直接安装Anaconda,
Windows环境下打开 CMD (开始—运行—CMD),苹果系统环境下请打开 终端 Terminal (command+空格输入Terminal),准备开始输入命令安装依赖。
在终端输入以下命令安装所需要的依赖模块:
pip install openpyxl
看到 Successfully installed xxx 则说明安装成功。
二、代码说明
1. 获取日期
首先,绘制一份日历,得先知道每个月份有多少天,每天都是星期几,可以使用calendar包获得这些信息:
calendar.monthcalendar(2021, i)
通过这个函数,我们能得到 2021年i月的日历,它类似一个j*k的矩阵,因此可以这样遍历得到每一个日期:
# calendar.monthcalendar 获得的值类似于:
# [[0, 0, 0, 0, 1, 2, 3],
# [4, 5, 6, 7, 8, 9, 10],
# [11, 12, 13, 14, 15, 16, 17],
# [18, 19, 20, 21, 22, 23, 24],
# [25, 26, 27, 28, 29, 30, 31]]
# 从左至右为星期日到星期六
month_calendar = calendar.monthcalendar(2021, i)
for row in range(len(month_calendar)):
for col in range(len(month_calendar[row])):
value = month_calendar[row][col]
2. 绘制得到日历
Openpyxl模块提供了许多方便的功能,比如设置单元格格式、调整单元格颜色、添加图片等。
基于Openpyxl,绘制一份日历最方便的做法是先将日期等信息绘制到excel中,然后再从excel中提取图片出来。
Openpyxl怎么用?给大家一个设置单元格字体的例子:
sheet.cell(row=j + 4 + count, column=k + 2).font = Font(u'微软雅黑', color=text_color , size=14)
sheet是对应的表格,row和column就是某个单元格的位置,然后对font属性进行设置,调用Font类并设置参数。
如果大家不知道Font类有什么参数,可以参考openpyxl官方文档。
你可以看到里面大部分单元格的属性都是类似上面那样设置的,非常简单。
3. 作品是每个月份都有一个图在旁边做装饰
为了给每个月份添加一份装饰图,需要向Excel中插入图片,幸运的是,Openpyxl提供了很方便的插入方法:
# 添加图片 img = Image(f’12graphs/{i}.jpg’) sheet.add_image(img, ‘I2’)
12graphs下存放了12个月份的图,循环遍历每张表格,就能将对应的图表添加并渲染到 I2 格子上.
你也可以自行DIY,比如换上女票的照片,然后作为礼物送给她
请注意图片的名称不能过错,必须是从1到12的jpg格式。
4. 我们还有一个神秘功能
差点忘了告诉大家了,我们的日历能支持备注哦,在调用get_month_xlsx得到文档前,通过set_information()放入你某一天想做的事情即可。如:
set_information('2021-12-1', '考试') set_information('2021-12-1', '约会')
简单的代码讲解如上,详细代码可以在公众号后台回复 日历 下载查看。
三、运行代码
终于到了激动人心的运行代码部分了,运行这份代码,你只需要在本地 cmd/terminal 进入该项目源代码文件夹运行:
python calendary.py
会自动生成一个excel表格叫my_calendary.xlsx,这就是我们生成的日历了。
怎样从里面把日历提取成图片?
很简单,复制你想要的部分,粘贴到任何聊天窗口就能变成一张图片!
大家可以阅读代码,根据自己喜好尝试设置背景色、边框色、交替色和图片。
以上,便是如何用 Python 生成一个日历,你也可以动手试一试!
来源:https://blog.csdn.net/xiangxueerfei/article/details/122808736


猜你喜欢
- 分形几何学的基本思想:客观事物具有自相似性的层次结构,局部和整体在形态,功能,信息,时间,空间等方面具有统计意义上的相似性,称为自相似性,自
- 代码: <?php $page=$_GET['page']; include($page.'php')
- 出现的问题状况是:在Anaconda文件下,少了Jupyter Notebook快捷键,不然每次都要打开Anaconda Navigator
- xlrd主要用于读取Excel文件,本文为大家分享了python处理Excel的具体代码,供大家参考,具体内容如下安装pip install
- 提起python做网络爬虫就不得不说到强大的组件urllib2。在python中正是使用urllib2这个组件来抓取网页的。urllib2是
- 偶然在网上发现itchat这个框架,itchat是一个开源的微信个人号接口,它使python调用微信变得非常简单。看到网上有人发自己微信好友
- 在通过scrapy框架进行某些网站数据爬取的时候,往往会碰到页面动态数据加载的情况发生,如果直接使用scrapy对其url发请求,是绝对获取
- Python程序中,在进程和进程之间是不共享全局变量的数据的。我们来看一个例子:from multiprocessing import Pr
- 前言: 当我们需要存储小数,并且有精度要求,比如存储金额时,通常会考虑使用DECIMAL字段类型,可能大部分同学只是对DECIMAL类型略有
- 手头有 109 张头部 CT 的断层扫描图片,我打算用这些图片尝试头部的三维重建。基础工作之一,就是要把这些图片数据读出来,组织成一个三维的
- 整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,0的阶乘为1。即:n!=1×2×3×...×n。首先导入math模块
- 有时候想要把几张图放在一起plot,比较好对比,subplot和subplots都可以实现,具体对比可以查看参考博文。这里用matplotl
- i前端:nput_test.html<!DOCTYPE html><html><head lang="
- 第一种: <script language=”javascript” type=”text/javascript”> windo
- usageerror: line magic function "%%time" not found在使用IPython
- 本文实例讲述了python通过pil为png图片填充上背景颜色的方法。分享给大家供大家参考。具体分析如下:png图片有些是没有背景颜色,如果
- fetchone() 返回单个的元组,也就是一条记录(row),如果没有结果 则返回 Nonefetchall() 返回多个元组,即返回多个
- 数据表:列转行:利用max(case when then)max---聚合函数 取最大值(case course when '语文&
- python读取和保存图片5种方法对比python中对象之间的赋值是按引用传递的,如果需要拷贝对象,需要用到标准库中的copy模块方法一:利
- 当有两个表,例如一个学生表,一个班级表,是多对一的关系。方法1:c = models.Class.object.get(pk=1)#查询到I