美文网首页
思政课成绩统计

思政课成绩统计

作者: Noza_ea8f | 来源:发表于2021-05-27 16:09 被阅读0次

main.py

import xlrd
import pandas as pd
from xlutils.copy import copy
from lib.func import auto_fill_0, get_ls_max_len

path = '2019.7期末考试成绩最终发布.xls'
rb = xlrd.open_workbook(path, formatting_info=True)
wb = copy(rb)
sheet = rb.sheet_by_name('sheet1')

# 获取行列数
rows = sheet.nrows
cols = sheet.ncols

# class_sz = ['04389', '04385', '04391', '04390', '04384']
# 思政课字典
class_sz = {'04389': [], '04385': [], '04391': [], '04390': [], '04384': []}

# 获取所有思政课成绩
for row in range(0, rows):
    for col in range(0, cols):
        # 逐行逐列获取每个单元格的值
        val = sheet.cell_value(row, col)
        # 将获取的值在字典中进行比对
        for k, v in class_sz.items():
            # 如果找到了课程ID
            if val == k:
                # 跳过两行,因为下一行是课程名称
                new_row = row + 2
                # 从该列开始往下逐行查询
                for i in range(new_row, rows):
                    # 获取成绩值
                    score = sheet.cell_value(i, col)
                    # 左侧A列数值长度,因为最左侧列是学号,长度为13
                    A_len = len(sheet.cell_value(i, 0))
                    # 如果左侧A列数值不等于13
                    if A_len != 13:
                        break
                    elif score != '':
                        v.append(score)

d = auto_fill_0(d=class_sz, max_l=get_ls_max_len(class_sz))
# print(d)
# 写入Excel
df = pd.DataFrame(d)

writer = pd.ExcelWriter('xx.xlsx')
df.to_excel(writer, index=False)
writer.save()

func.py

import sys

sys.setrecursionlimit(100000)  # 设置递归深度(可为任意值)


# 运用递归将所有列表长度统一
def auto_fill_0(d, max_l):
    for k, v in d.items():
        if len(v) < max_l:
            v.append(0)
            auto_fill_0(d, max_l)
    return d


# 这是一个字典
# d = {'a': [1, 2],
#      'b': [3, 4, 5],
#      'c': [6],
#      'd': [7, 8]}


# 我要找出字典中值列表最长的列表长度
def get_ls_max_len(d):
    ls = []
    for k, v in d.items():
        ls.append(len(v))

    ls = sorted(ls)
    # 最长的列表长度
    max_l = ls[-1]
    return max_l

# print(get_ls_max_len(d))

相关文章

  • 思政课成绩统计

    main.py func.py

  • 【538→思政】课程思政

    思政课,课程思政, 两个不同的概念, 具有不同的教学目标, 主次得分清, 不能颠倒。 思政课不能取代课程思政, 思...

  • 三个文旅思政课,一座大众哲学城

    三个文旅思政课,一座大众哲学城 -----一个全民思政课,一个全军思政课,一个学生思政课,培养社会主义事业的建设者...

  • 三个文旅思政课,一座大众哲学城

    三个文旅思政课,一座大众哲学城 -----一个全民思政课,一个全军思政课,一个学生思政课,培养社会主义事业的建设者...

  • 思政课

    怀揣梦想。有梦想才有未来,每个人都有梦,中国梦才有依托。邓稼先隐姓埋名20多年研制核武器、王进喜“宁肯少活20年,...

  • 思政课

    扣好人生第一颗纽扣的思政课是《一堂好课》中的第一课,由国防大学金一南教授讲授。 在看这堂课之前,金一南教授对于我来...

  • 思政课

    那个下篇下次再放上来,今天插一篇新的文章,或者说,新的感想。 最近在复习马原,期末才考完毛概,讲真,我觉得这门课的...

  • 思政课

  • 思政课

    眼含热泪听了驰援武汉医务工作者的先进事例,在这驰援武汉的医务工作者当中有年长的护士、医师,更有90后的年轻的医生和...

  • 【素·日记录】2020年6月10日(周三)

    工作记录: 1.收取质量检测成绩电子表。 2.备思政课。 3.准备动员会文稿及课件等。

网友评论

      本文标题:思政课成绩统计

      本文链接:https://www.haomeiwen.com/subject/kshdsltx.html