用Python實現(xiàn)一本個性化日歷
前言
哈嘍鐵汁們~新年到了,很多小伙伴都會買上一本日歷。現(xiàn)在各種主題各種式樣的日歷有很多,不過你有沒有想過自己定制一套專屬的個性化電子日歷呢?
今天小編就教大家如何用python生成一個日歷。
?一、準(zhǔn)備
開始之前,你要確保Python和pip已經(jīng)成功安裝在了電腦上。如果沒有,可以在公眾號“Crossin的編程教室”里回復(fù)關(guān)鍵字 安裝,查看相關(guān)演示教程。另外,如果你用Python的目的是做數(shù)據(jù)分析,可以直接安裝Anaconda,
Windows環(huán)境下打開 CMD (開始—運行—CMD),蘋果系統(tǒng)環(huán)境下請打開 終端 Terminal (command+空格輸入Terminal),準(zhǔn)備開始輸入命令安裝依賴。
在終端輸入以下命令安裝所需要的依賴模塊:
pip install openpyxl
看到 Successfully installed xxx 則說明安裝成功。
二、代碼說明
1. 獲取日期
首先,繪制一份日歷,得先知道每個月份有多少天,每天都是星期幾,可以使用calendar包獲得這些信息:
calendar.monthcalendar(2021, i)
通過這個函數(shù),我們能得到 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模塊提供了許多方便的功能,比如設(shè)置單元格格式、調(diào)整單元格顏色、添加圖片等。
基于Openpyxl,繪制一份日歷最方便的做法是先將日期等信息繪制到excel中,然后再從excel中提取圖片出來。
Openpyxl怎么用?給大家一個設(shè)置單元格字體的例子:
sheet.cell(row=j + 4 + count, column=k + 2).font = Font(u'微軟雅黑', color=text_color , size=14)
?sheet是對應(yīng)的表格,row和column就是某個單元格的位置,然后對font屬性進行設(shè)置,調(diào)用Font類并設(shè)置參數(shù)。
如果大家不知道Font類有什么參數(shù),可以參考o(jì)penpyxl官方文檔。
你可以看到里面大部分單元格的屬性都是類似上面那樣設(shè)置的,非常簡單。
3. 作品是每個月份都有一個圖在旁邊做裝飾
為了給每個月份添加一份裝飾圖,需要向Excel中插入圖片,幸運的是,Openpyxl提供了很方便的插入方法:
? # 添加圖片 img = Image(f’12graphs/{i}.jpg’) sheet.add_image(img, ‘I2’)
12graphs下存放了12個月份的圖,循環(huán)遍歷每張表格,就能將對應(yīng)的圖表添加并渲染到 I2 格子上.
你也可以自行DIY,比如換上女票的照片,然后作為禮物送給她
請注意圖片的名稱不能過錯,必須是從1到12的jpg格式。
4. 我們還有一個神秘功能
差點忘了告訴大家了,我們的日歷能支持備注哦,在調(diào)用get_month_xlsx得到文檔前,通過set_information()放入你某一天想做的事情即可。如:
?set_information('2021-12-1', '考試') set_information('2021-12-1', '約會')
簡單的代碼講解如上,詳細(xì)代碼可以在公眾號后臺回復(fù) 日歷 下載查看。
?三、運行代碼
終于到了激動人心的運行代碼部分了,運行這份代碼,你只需要在本地 cmd/terminal 進入該項目源代碼文件夾運行:
??python calendary.py
?會自動生成一個excel表格叫my_calendary.xlsx,這就是我們生成的日歷了。
怎樣從里面把日歷提取成圖片?
很簡單,復(fù)制你想要的部分,粘貼到任何聊天窗口就能變成一張圖片!
大家可以閱讀代碼,根據(jù)自己喜好嘗試設(shè)置背景色、邊框色、交替色和圖片。
以上,便是如何用 Python 生成一個日歷,你也可以動手試一試!
總結(jié)
到此這篇關(guān)于用Python實現(xiàn)一本個性化日歷的文章就介紹到這了,更多相關(guān)Python個性化日歷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python數(shù)組轉(zhuǎn)換為矩陣的方法實現(xiàn)
本文主要介紹了python數(shù)組轉(zhuǎn)換為矩陣的方法實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Pandas數(shù)據(jù)分組統(tǒng)計的實現(xiàn)示例
對數(shù)據(jù)進行分組統(tǒng)計,主要適用DataFrame對象的groupby()函數(shù),本文就來詳細(xì)的介紹下Pandas數(shù)據(jù)分組統(tǒng)計的實現(xiàn),具有一定的參考價值,感興趣的可以了解下2023-11-11Python自動化開發(fā)學(xué)習(xí)之三級菜單制作
這篇文章主要為大家詳細(xì)介紹了Python自動化開發(fā)學(xué)習(xí)之三級菜單的制作方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07一篇文章帶你學(xué)習(xí)Python3的高級特性(1)
這篇文章主要為大家詳細(xì)介紹了Python3的高階函數(shù),主要介紹什么是高級特性,高級特性的用法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01