【python脚本】课表信息生成 course_test(源代码)

server/2024/9/22 23:08:45/

在处理excel表格数据中编写的一个可以自动处理课表信息的脚本。

python">import os
import openpyxl
import re# 检查文件是否存在
file_name = "course_info.xlsx"
if os.path.exists(file_name):# 如果文件存在,先删除os.remove(file_name)# 创建一个新的 Excel 工作簿
workbook = openpyxl.Workbook()
sheet = workbook.active
# 写入表头
sheet.append(["序号", "课程名称", "周次", "星期", "节次", "上课地点", "任课老师"])
# 保存 Excel 文件
workbook.save(file_name)def append_data_to_excel(excel, new_data):# 打开已存在的 Excel 文件workbook = openpyxl.load_workbook(excel)# 选择要添加数据的工作表,这里假设工作表的名字是 "Sheet"sheet = workbook["Sheet"]# 准备要添加的新数据,例如一个列表# new_data = [num, CourseName, week, day, lesson, classroom, teacher]# 在工作表中添加新数据sheet.append(new_data)# 保存修改后的 Excel 文件workbook.save(excel)# workbook = xlrd.open_workbook('./文献检测情况汇总(持续更新).xlsx')
workbook = openpyxl.load_workbook('./课表数据.xlsx')
work_sheet = workbook['data']num = 0  # 初始化序号for row in work_sheet.iter_rows(values_only=True, min_row=2,):CourseName = row[2];CoureseTimeAddress = row[25];# print(CourseName,CoureseTimeAddress)try:message = CoureseTimeAddress.split(';')# print(message)except:# print("no message")continuefor m in message:if m == '':continuem = m.split()# print(m)week = m[0]day = m[1][:3]# 使用正则表达式提取方括号内的内容pattern = r'\[(.*?)\]'  # 匹配方括号内的任意字符,非贪婪模式matches = re.findall(pattern, m[1])lesson = matches[0]# print(lesson)# 使用正则表达式提取 "1-204" 模式pattern = r'\b\d+-\d+\b'  # 匹配数字-数字模式的单词边界matches = re.findall(pattern, m[1])classroom = matches[0]# print(classroom)teacher = m[2]# num = num + 1# print(num, CourseName, week, day, lesson, classroom, teacher)week = week.split(",")# print(week)for w in week:flag = 0if '单' in w:flag = 1if '周' not in w:w = w[:-1]else:w = w[:-2]elif '双' in w:flag = 2if '周' not in w:w = w[:-1]else:w = w[:-2]else:flag = 0if '周' in w:w = w[:-1]# print(w)if '-' in w:a, b = w.split('-')try:a, b = int(a), int(b)except:print("error")print(a,b)for i in range(a,b+1):if flag==1 and i%2==0:continueif flag==2 and i%2!=0:continuenum = num + 1new_data = [num, CourseName, i, day, lesson, classroom, teacher]print(num, CourseName, i, day, lesson, classroom, teacher)# 将数据存入excel表格append_data_to_excel("course_info.xlsx", new_data)else:num = num + 1w = int(w)new_data = [num, CourseName, w, day, lesson, classroom, teacher]print(num, CourseName, w, day, lesson, classroom, teacher)# 将数据存入excel表格append_data_to_excel("course_info.xlsx", new_data)

http://www.ppmy.cn/server/3296.html

相关文章

html、css、QQ音乐移动端静态页面,资源免费分享,可作为参考,提供InsCode在线运行演示

CSDN将我上传的免费资源私自变成VIP专享资源,且作为作者的我不可修改为免费资源,不可删除,寻找客服无果,很愤怒,(我发布免费资源就是希望大家能免费一起用、一起学习),接下来继续寻找…

预处理详解

目录 1.预定义符号 2.#define定义常量 3.#define定义宏 4.带有副作用的宏参数 5.宏替换的规则 6.宏函数的对比 7.#和## 7.1 #运算符 7.2 ##运算符 8.命名约定 9.#undef 10.命令行定义 11.条件编译 12.头文件的包含 12.1头文件被包含的方式 12.1.1本地文件包含 …

Leetcode-48-旋转图像

题目说明 给定一个 n n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入…

单例设计模式

目录 单例模式的特点 线程安全问题 实现单例模式的八种方式 单例模式的优点 单例模式的缺点 单例模式的使用场景 单例设计模式是一种创建型设计模式,用于确保某个类只有一个实例,并提供一个全局访问点。这种模式通常在需要控制一个类的实例只能存在…

Git的SSH密钥配置

1: https和ssh的区别 很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用ssh url克隆到本地。 使用https url克隆对初学者来说会比较方便,复制https url然后到git Bash里面直接用clone命令克隆到本地就好…

QT 串口助手 学习制作记录

QT 串口助手qt 学习制作记录 参考教程:​​​​​​QT初体验:手把手带你写一个自己的串口助手_qt设计串口助手的流程图-CSDN博客 Qt之串口编程(添加QSerialPort模块)_如何安装 qt串口模块教程-CSDN博客 串口调试助手&#xff1…

HTTP概述

HTTP HTTP(超文本传输协议) 认识URL 平时我们俗称的 “网址” 其实就是说的 URL urlencode和urldecode 像 / ? : 等这样的字符, 已经被url当做特殊意义理解了. 因此这些字符不能随意出现。 比如, 某个参数中需要带有这些特殊字符, 就必须先对特殊字符进行转义. 转义的规则…

es6 常用的object归纳总结和部分数组纠结总结

对象 1.Object.assign() Object.assign() 静态方法将一个或者多个源对象中所有可枚举的自有属性复制到目标对象,并返回修改后的目标对象. 1.注意target是目标对象,修改后将作为返回值,但是source不会,source是源对象。 2.如果…