• 大小: 972KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: Python
  • 标签: 无课表  

资源简介

一款读取学生课表数据并生成其无课表的xls的小工具. 由于本人要遇到要制作很多人的无课表的问题,在学习了python后,就借助其弄了这款工具. 使用者只需要保证数据规范,就能快速制作出一个社团的无课表!

资源截图

代码片段和文件信息

import sys
#
#   调戏与被调戏
#
print(“注意了!无课表助手不具备排错功能!\n就是说你的‘课表.txt‘必须严格规范格式!“)
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(‘慢着!你你你刚才是不是调戏我来着!?\n我数数123..你丫的调戏老子‘t‘次了!\n‘)
else:
    print(‘显示简略操作提示!\n‘)
    if t > 5:
        print(‘慢着!你你你刚才是不是调戏我来着!?\n我数数123..你丫的调戏老子‘t‘次了!\n‘)

#
#   读取课表
#
n = 1   #人数
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:    # 一行一行地读取课表的内容

            i = i.strip()    # 去空格 换行

            if p == 1 :   # 读取单周名字行
                name_1 = i.split(“ “)[0]
                stu = [ name_1 ]
                if info == 1:
                    print(‘开始读取‘stu[0]‘的数据!‘)
            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()  # 单周数据读取完毕后读取双周名字行
                name_2 = i.split(“ “)[0]
                stu = [name_2]

                if name_1 != name_2:
                    print(“           警告!\n在读取第“ n ‘个人的数据时单双周的名字不同!‘)
                    print(“单周: {}  双周: {}\n“.format(name_1 name_2))
                    sys.exit()

            if p == 12:      # 开始新数据的读取
                sub_2 = sub_2 + stu
                n = n + 1
                p = 1       # 恢复p=1使下一次循环正常运行
                print(stu[0] ‘双周的无课表读取完毕!\n‘)
                continue

        print(‘已成功读取‘n-1‘人的数据!\n‘)
except:
    print(‘           警告!\n课表.txt 不在当前目录!\n或者课表.txt的内容格式不正确!‘)
    sys.exit()

if info == 1:
    print(‘单周: ‘ sub_1)
    print(‘双周: ‘ sub_2)

#记录总人数
total=n-1

#
#   制作无课表的列表
#
work_1 = [  [ ‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘ ]  [ ‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘ ]  [ ‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘ ]  [ ‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘ ]  [ ‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘ ]  ]
work_2 = [  [ ‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘ ]  [ ‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘ ]  [ ‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘ ]  [ ‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘ ]  [ ‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘‘ ‘ ]  ]
# [    [星期一] [星期二] [星期三] [星期四] [星期五]   ]
#      [星期x] = [   [第一部分] [第二部分] [第三部分] [第四部分] [第五部分] [第六部分] [第七部分]   ]

for w in range(1 5+1):  #星期x
    # 有多少人就循环多少次 列表总长度:人数*6
    for z in range(0 total*6 6):
        # sub[z]是某人的名字
        # sub[z+w]是某人星期w的数据
        # 读取星期w的数据
        for part in range(17+1):    # 每天7部分part代表第几部分
            #处理单周
            if sub_1[z+w][part] == ‘0‘:  # 如果无课(0)就在对应的位置加上他的名字
                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


评论

共有 条评论

相关资源