广告
返回顶部
首页 > 资讯 > 后端开发 > Python >用Python实现一本个性化日历
  • 939
分享到

用Python实现一本个性化日历

2024-04-02 19:04:59 939人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录前言​一、准备二、代码说明1. 获取日期2. 绘制得到日历3. 作品是每个月份都有一个图在旁边做装饰4. 我们还有一个神秘功能​三、运行代码总结前言 哈喽铁汁们~新年到了,很多小

前言

哈喽铁汁们~新年到了,很多小伙伴都会买上一本日历。现在各种主题各种式样的日历有很多,不过你有没有想过自己定制一套专属的个性化电子日历呢?

今天小编就教大家如何用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 生成一个日历,你也可以动手试一试!

总结

到此这篇关于用Python实现一本个性化日历的文章就介绍到这了,更多相关Python个性化日历内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 用Python实现一本个性化日历

本文链接: https://www.lsjlt.com/news/138348.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 用Python实现一本个性化日历
    目录前言​一、准备二、代码说明1. 获取日期2. 绘制得到日历3. 作品是每个月份都有一个图在旁边做装饰4. 我们还有一个神秘功能​三、运行代码总结前言 哈喽铁汁们~新年到了,很多小...
    99+
    2022-11-13
  • 怎么用Python实现一本个性化日历
    今天小编给大家分享一下怎么用Python实现一本个性化日历的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、准备开始之前,你...
    99+
    2023-06-29
  • 如何实现Shell脚本遍历一个日期范围
    本篇内容主要讲解“如何实现Shell脚本遍历一个日期范围”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现Shell脚本遍历一个日期范围”吧!代码如下:#!/usr/bin/env bash...
    99+
    2023-06-09
  • Shell脚本遍历一个日期范围实例
    如果跟shell脚本打交道,遍历一个时间范围是很常见的事情,那么今天就跟大家分享一下: #!/usr/bin/env bash date1="$1" date2="$2" echo "date1: $...
    99+
    2022-06-04
    遍历 脚本 实例
  • 基于vue2实现一个日历组件
    目录QCalendar.scssgetRangeDay.jsformatTime.jsQCalendar.vue日历组件效果图日月年tips总结不用任何第三方库,只基于vue2实现一...
    99+
    2022-12-29
    vue日历组件 切换月周日都可选择 vue 日历 Vue 日程日历
  • 使用JavaScript怎么实现一个日历效果
    这篇文章给大家介绍使用JavaScript怎么实现一个日历效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用...
    99+
    2023-06-07
  • C#中怎么实现一个日历控件
    本篇文章给大家分享的是有关C#中怎么实现一个日历控件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。定制C#日历控件在把会议添加到数据库中之前,先修改一下日历的显示。***用另一...
    99+
    2023-06-18
  • 使用Flutter怎么实现一个钉钉考勤日历
    使用Flutter怎么实现一个钉钉考勤日历?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 使用  // 考勤日历 &nb...
    99+
    2023-06-14
  • 使用vue怎么实现一个价格日历效果
    今天就跟大家聊聊有关使用vue怎么实现一个价格日历效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Vue的优点Vue具体轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离...
    99+
    2023-06-14
  • Java中怎么利用Calendar类实现一个动态日历
    本篇文章为大家展示了Java中怎么利用Calendar类实现一个动态日历,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.打印日历1当月总天数2当月第一天是周几(注意:月份是从0开始,星期是从周日(...
    99+
    2023-06-20
  • 如何在web端实现一个有日历的报表
    如何在web端实现一个有日历的报表,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。简单要一个日历控件来选择日期查询,可以直接用报表工具自带的控件或者也有一些开源的...
    99+
    2023-06-03
  • 如何在Android 开发中实现一个日历控件
    这期内容当中小编将会给大家带来有关如何在Android 开发中实现一个日历控件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、主要功能支持农历、节气、常用节假日2、日期范围设置,默认支持的最大日期范围[...
    99+
    2023-05-31
    android roi
  • 如何在shell中使用AWK实现一个日历小程序
    如何在shell中使用AWK实现一个日历小程序?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码段:function whichWeek(y, m,&nbs...
    99+
    2023-06-09
  • 怎么在Android中实现一个可标记日历功能
    今天就跟大家聊聊有关怎么在Android中实现一个可标记日历功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。DatabaseHelper .java package co...
    99+
    2023-05-31
    android roi %d
  • 如何使用MySQL和Java实现一个简单的日历功能
    如何使用MySQL和Java实现一个简单的日历功能在现代社会中,人们经常需要管理自己的日程安排和日常事务。一个方便实用的日历功能不仅可以帮助人们有效地管理时间,还可以提醒他们重要事件的到来。本文将介绍如何使用MySQL和Java来实现一个简...
    99+
    2023-10-22
    MySQL Java 日历
  • python实时分析日志的一个小脚本分享
    前言 大家都知道Web运维总要关注相关域名的实时2xx/s、4xx/s、5xx/s、响应时间、带宽等这些指标,之前的日志是五分钟一分割,简单的用awk就可以了,现在由于要推送日志到ELK,继续之前五分钟一分...
    99+
    2022-06-04
    脚本 实时 日志
  • 使用Java怎么实现一个万年历
    这篇文章给大家介绍使用Java怎么实现一个万年历,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5....
    99+
    2023-06-14
  • C#中怎么实现一个日历样式的下拉式计算器
    C#中怎么实现一个日历样式的下拉式计算器,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。本文介绍了如何在Visual Studio中创建用户控件来显示下拉式计算器...
    99+
    2023-06-17
  • 如何利用HashMap实现一个遍历功能
    这篇文章给大家介绍如何利用HashMap实现一个遍历功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。map的几种遍历方式:Map< String, String> map&n...
    99+
    2023-05-31
    hashmap 遍历
  • Python利用zhdate模块实现农历日期处理
    目录简介安装主要功能源码简介 zhdate模块统计从1900年到2100年的农历月份数据代码,支持农历和公历之间的转化,并且支持日期差额运算。 安装 pip install zhda...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作