日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python自己做课程表_Python 大学生课表 iCalendar (.ics) 生成

發(fā)布時(shí)間:2023/12/20 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python自己做课程表_Python 大学生课表 iCalendar (.ics) 生成 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python 大學(xué)生課表 iCalendar (.ics) 生成

簡(jiǎn)介

大一新生第一次接觸大學(xué)生課表,在有 Mac、iPhone 和 Apple Watch 設(shè)備的情況下希望能將自己的課表導(dǎo)入內(nèi)置日歷應(yīng)用,以更方便的隨時(shí)查看課表和規(guī)劃行程。由于沒(méi)有找到比較合適的 app 故自己寫(xiě)了這一代碼。推薦使用 Python 3 運(yùn)行。

[限定] 重慶郵電大學(xué)學(xué)生

如果你是重慶郵電大學(xué)學(xué)生,直接使用 timetable_cqupt_automatic.py,就可以自動(dòng)獲取并生成來(lái)自教務(wù)在線的課表和考試安排。

如果將代碼配合 crontab 任務(wù),即可在你的服務(wù)器上創(chuàng)建 ics 訂閱,隨時(shí)獲得最新的包含調(diào)停課(部分)的課表和考試安排。

直接修改代碼中的學(xué)號(hào),并修改代碼最后的 ics 文件保存位置即可,課表和考試安排數(shù)據(jù)由重慶郵電大學(xué)紅巖網(wǎng)校所開(kāi)發(fā)掌上重郵 app (cyxbsmobile) 提供。

功能

支持錄入課程名稱(chēng),教師,必修/選修,學(xué)分,上課地點(diǎn),星期幾,周數(shù)和第幾節(jié)課及一個(gè)附加信息

支持單獨(dú)周數(shù),范圍周數(shù),奇偶周數(shù),如 "第2周,5-11單數(shù)周,13-17 周"

支持 Apple Maps GPS 信息(需手動(dòng)補(bǔ)充,后續(xù)說(shuō)明),在日歷中添加教室位置,并可利用 iOS 的 Siri 分析功能在多個(gè) App 中獲得附加功能

你可以獲得 Apple 軟件中的特別功能:例如向 Siri 問(wèn):我今天有什么事情?我下周五有什么安排?例如在 Apple Watch 表盤(pán)上獲得下節(jié)課的時(shí)間和地點(diǎn)…… 添加 GPS 信息后,你還可以獲得 Apple Maps 出發(fā)時(shí)間提醒,Siri 與搜索自動(dòng)聯(lián)想等功能。

使用

請(qǐng)調(diào)整代碼中的以下內(nèi)容以適配自己的課表:

maxWeek 為本學(xué)期最大周數(shù),有 20 周即寫(xiě) 20 周,為了方便后續(xù)代碼將自動(dòng) +1,也可以去掉代碼中的 maxWeek += 1,然后填寫(xiě)已經(jīng) + 1 后的周數(shù)。

classTime 為每節(jié)課的上課時(shí)間,以元組形保存。為了方便后續(xù)第 n 節(jié)課直接為[n],預(yù)留了第 0 項(xiàng)為None,可以不做修改。直接填寫(xiě)每節(jié)課的 24 小時(shí)制上課時(shí)間:例如 8:00 上課,則錄入(8, 0);下午 7:50 上課,則錄入(19, 50)。

修改 starterDay 為本學(xué)期第一周星期一的日期。

修改 classes 中的課程信息,由于不同學(xué)校課表可能含有不同信息,請(qǐng)參考源代碼中的課表填寫(xiě),并直接在后續(xù)定義中作出相應(yīng)修改:

在 for Class in classes: 后,定義了不同的變量,均可進(jìn)行自定義。最終,Title變量為日歷項(xiàng)的標(biāo)題,Description變量為日歷項(xiàng)的備注,均可根據(jù)自己喜好修改。您只需要一點(diǎn)點(diǎn) Python 基礎(chǔ)即可看懂源代碼并作出修改。

如何設(shè)置周數(shù)? 單獨(dú)周:請(qǐng)改為數(shù)組形式,例如 [2]; 范圍周:請(qǐng)使用rgWeek,例如 rgWeek(3, 7) 代表第三周到第七周; 奇數(shù)周:請(qǐng)使用oeWeek,例如 oeWeek(2, 9, 1) 代表第二周到第九周的單數(shù)周,將 1 改為 0 即為偶數(shù)周。

如何設(shè)置課程節(jié)數(shù)? 一節(jié)課:請(qǐng)改為數(shù)組形式,例如 [2]; 范圍課,請(qǐng)使用rgWeek,例如 rgWeek(3, 7) 代表第三節(jié)一直上到第七節(jié);

如果周數(shù)、節(jié)數(shù)是由多項(xiàng)組成,請(qǐng)使用加法。例如,第2周,5-11單數(shù)周,13-17 周,則為:

[2] + oeWeek(5, 11, 1) + rgWeek(13, 17)

在classEndTime.append行末尾將 "+ 45" 修改為加每節(jié)課的時(shí)長(zhǎng),一節(jié)課 40 分鐘則為 "+ 40"。

更改 jWrite 中的文件目錄為合適的位置以便輸出最終結(jié)果

庫(kù)中的 timetable_cqupt.py 是重慶郵電大學(xué)同學(xué)的一個(gè)版本,timetable_cqu.py 是重慶大學(xué)同學(xué)的一個(gè)版本,供你參考兩種不同的 classes 和 Class 的變量?jī)?nèi)容。

添加 Apple Maps GEO

這一功能僅在 Apple 設(shè)備上進(jìn)行測(cè)試,在 iCalendar 標(biāo)準(zhǔn)中,似乎定義 GEO 項(xiàng)并輸入坐標(biāo)即可確定位置,但在 iOS 和 macOS 上驗(yàn)證不通過(guò)。

Apple 日歷使用了X-APPLE-STRUCTURED-LOCATION,X-APPLE-MAPKIT-HANDLE來(lái)記錄 Apple Maps 位置信息,這一項(xiàng)包含位置文字和坐標(biāo)。一個(gè)樣例內(nèi)容如下:

LOCATION:重慶郵電大學(xué)綜合實(shí)驗(yàn)大樓\n南山路新力村

X-APPLE-STRUCTURED-LOCATION;VALUE=URI;X-APPLE-MAPKIT-HANDLE=;X-APPLE-RADIUS=500;X-TITLE=重慶郵電大學(xué)綜合實(shí)驗(yàn)大樓\\n南山路新力村:geo:29.524289,106.605595

其中,LOCATION和X-TITLE中的地址必須一字不差的和 Apple Maps 結(jié)果對(duì)應(yīng),不得修改。geo 項(xiàng)則為坐標(biāo)。

為了保證可用性,這一段文本只能手動(dòng)創(chuàng)建日歷項(xiàng)并導(dǎo)出提取。

導(dǎo)出方法

打開(kāi) macOS 日歷 app,創(chuàng)建一個(gè)空白日歷項(xiàng)(請(qǐng)盡量在一個(gè)沒(méi)有太多日歷項(xiàng)的日歷中創(chuàng)建,因?yàn)樯院笮枰獙?dǎo)出整個(gè)日歷),并輸入想要添加的位置保存。

點(diǎn)擊日歷 -> 文件 -> 導(dǎo)出 -> 導(dǎo)出,保存 ics 文件。

用文本編輯器打開(kāi) ics 文件,找到BEGIN:VEVENT中你剛剛建立的包含位置的 VEVENT 項(xiàng)目。

你將可找到類(lèi)似以下兩個(gè)文段:

LOCATION:重慶大學(xué)虎溪校區(qū)\n大學(xué)城南路55號(hào)

X-APPLE-STRUCTURED-LOCATION;VALUE=URI;X-APPLE-MAPKITHANDLE=一大串文字;X-APPLE-RADIUS=925.4324489259043;X-TITLE=重慶大學(xué)虎溪校區(qū)\\n大學(xué)城南路5號(hào):geo:29.592566,106.299150

直接將 <一大串文字> 全部去掉,注意不要?jiǎng)h除后面的分號(hào),RADIUS 可以不修改,TITLE 中的文字請(qǐng)勿修改。

最后,將這一段文字替換代碼中的 customGEO(代碼中有重慶大學(xué)虎溪校區(qū)和重慶郵電大學(xué)部分樓棟信息作為參考,你也可以以這樣的方式處理不同的教學(xué)樓)。注意在 Python 文段中保留 \n 需要多加一個(gè)斜線,保留雙斜線 n 則需要四斜線。

聯(lián)系作者

直接提交 Issue

— 重慶郵電大學(xué)國(guó)際學(xué)院

總結(jié)

以上是生活随笔為你收集整理的python自己做课程表_Python 大学生课表 iCalendar (.ics) 生成的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。