資源簡介
一款讀取學生課表數(shù)據(jù)并生成其無課表的xls的小工具.
由于本人要遇到要制作很多人的無課表的問題,在學習了python后,就借助其弄了這款工具.
使用者只需要保證數(shù)據(jù)規(guī)范,就能快速制作出一個社團的無課表!

代碼片段和文件信息
import?sys
#
#???調(diào)戲與被調(diào)戲
#
print(“注意了!無課表助手不具備排錯功能!\n就是說你的‘課表.txt‘必須嚴格規(guī)范格式!“)
print(“\n如有疑問請向Adj尋求幫助!\n“)
t?=?0
info?=?0
while?info?>?1?or?info?0:
????t?=?t+1
????info?=?int(?input(‘詳細操作提示for?1?簡略操作提示for?0?請選擇:?‘)?)
????if?info?>?1?or?info?0:
????????print(‘你還真當我不能排錯啊!好好輸入?1?或者?0?就這么難么?\n‘)
if?info?==?1:
????print(‘顯示詳細操作提示!\n‘)
????if?t?>?5:
????????print(‘慢著!你你你剛才是不是調(diào)戲我來著!?\n我數(shù)數(shù)123..你丫的調(diào)戲老子‘t‘次了!\n‘)
else:
????print(‘顯示簡略操作提示!\n‘)
????if?t?>?5:
????????print(‘慢著!你你你剛才是不是調(diào)戲我來著!?\n我數(shù)數(shù)123..你丫的調(diào)戲老子‘t‘次了!\n‘)
#
#???讀取課表
#
n?=?1???#人數(shù)
sub_1?=?[]
sub_2?=?[]
try:
????with?open(‘課表.txt‘‘r‘)?as?kb:
????????filename?=?kb.readline().strip()???#讀取要保存的文件名
????????p=1???#??p為判斷下一人的標準讀一行加一次當p++后若p==12就開始下一人的處理
????????for?i?in?kb:????#?一行一行地讀取課表的內(nèi)容
????????????i?=?i.strip()????#?去空格?換行
????????????if?p?==?1?:???#?讀取單周名字行
????????????????name_1?=?i.split(“?“)[0]
????????????????stu?=?[?name_1?]
????????????????if?info?==?1:
????????????????????print(‘開始讀取‘stu[0]‘的數(shù)據(jù)!‘)
????????????else:
????????????????if?info?==?1:
????????????????????print(‘###?讀取‘stu[0]‘星期‘p-1‘的課表‘)
????????????????stu?=?stu+[i.split(‘?‘)]
????????????p=p+1
????????????#單周
????????????if?p?==?7:
????????????????print(stu[0]‘單周的無課表讀取完畢!‘)
????????????????sub_1?=?sub_1+stu
????????????????i?=?kb.readline()??#?單周數(shù)據(jù)讀取完畢后讀取雙周名字行
????????????????name_2?=?i.split(“?“)[0]
????????????????stu?=?[name_2]
????????????????if?name_1?!=?name_2:
????????????????????print(“???????????警告!\n在讀取第“?n?‘個人的數(shù)據(jù)時單雙周的名字不同!‘)
????????????????????print(“單周:?{}??雙周:?{}\n“.format(name_1?name_2))
????????????????????sys.exit()
????????????if?p?==?12:??????#?開始新數(shù)據(jù)的讀取
????????????????sub_2?=?sub_2?+?stu
????????????????n?=?n?+?1
????????????????p?=?1???????#?恢復(fù)p=1使下一次循環(huán)正常運行
????????????????print(stu[0]?‘雙周的無課表讀取完畢!\n‘)
????????????????continue
????????print(‘已成功讀取‘n-1‘人的數(shù)據(jù)!\n‘)
except:
????print(‘???????????警告!\n課表.txt?不在當前目錄!\n或者課表.txt的內(nèi)容格式不正確!‘)
????sys.exit()
if?info?==?1:
????print(‘單周:?‘?sub_1)
????print(‘雙周:?‘?sub_2)
#記錄總?cè)藬?shù)
total=n-1
#
#???制作無課表的列表
#
work_1?=?[??[?‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘?]??[?‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘?]??[?‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘?]??[?‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘?]??[?‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘?]??]
work_2?=?[??[?‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘?]??[?‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘?]??[?‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘?]??[?‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘?]??[?‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘‘?‘?]??]
#?[????[星期一]?[星期二]?[星期三]?[星期四]?[星期五]???]
#??????[星期x]?=?[???[第一部分]?[第二部分]?[第三部分]?[第四部分]?[第五部分]?[第六部分]?[第七部分]???]
for?w?in?range(1?5+1):??#星期x
????#?有多少人就循環(huán)多少次?列表總長度:人數(shù)*6
????for?z?in?range(0?total*6?6):
????????#?sub[z]是某人的名字
????????#?sub[z+w]是某人星期w的數(shù)據(jù)
????????#?讀取星期w的數(shù)據(jù)
????????for?part?in?range(17+1):????#?每天7部分part代表第幾部分
????????????#處理單周
????????????if?sub_1[z+w][part]?==?‘0‘:??#?如果無課(0)就在對應(yīng)的位置加上他的名字
????????????????if?work_1[w-1][part?-?1]?==?‘?‘
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????1020949??2017-03-29?11:27??無課表助手\無課表助手說明書.docx
?????文件????????246??2017-03-29?11:27??無課表助手\課表.txt
?????文件??????11758??2017-03-29?11:28??無課表助手\閑時作品?無課表?4.0.py
?????目錄??????????0??2017-03-29?11:28??無課表助手
-----------?---------??----------?-----??----
??????????????1032953????????????????????4
評論
共有 條評論