IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 学习通导出成绩,未完善 -> 正文阅读

[Python知识库]学习通导出成绩,未完善

?第一步,先找到你浏览器的下载路径,把路径改成一个好找点的文件夹(当然了,你也可以不改)

例如,我的位置是这个:

?

?然后导入pands模块和numpy,openpyxl

在终端输入pip install 模块名字

import pandas as pd

import os
import csv
from openpyxl import Workbook
import numpy as np
address="D:/桌面文件/py666/"
sno=[]
wb = Workbook()

ws = wb.create_sheet("respect")
label=[]
label.append("学号")
for filename in os.listdir(address):
    label.append(filename)
firstone=label[1]
#读取文件的名字
feature=[]
df_sno = pd.read_excel("%s%s"%(address,firstone), usecols=[1], names=None,skiprows=0)  # 读取项目名称列,不要列名
df_li_sno = df_sno.values.tolist()

for s_li_sno in df_li_sno:
    sno.append(s_li_sno[0])
sno.pop(1)
feature.append(sno)



for i in range(1,len(label)):
    #def excel_one_line_to_list():
        df = pd.read_excel("%s%s"%(address,label[i]), usecols=[9],names=None,skiprows=0)  # 读取项目名称列,不要列名

        df_li = df.values.tolist()
        # print(df_li)



        result = []
        for s_li in df_li:
            result.append(s_li[0])
        result.pop(1)
       # print(result)
        feature.append(result)



print('feature:',feature)
for i in range(len(feature)):
    feature[i].pop(0)
#写数据
label = np.array(label)
feature = np.array(feature)

label_input = []
for l in range(len(label)):
    label_input.append(label[l])



ws.append(label_input)
for f in range(len(feature[0])):

    ws.append(feature[:, f].tolist())

print('sno:',sno)
wb.save("web成绩查询.xlsx")
print("Ok,respect!!!")

注意从学习通里面导出的成绩不要做任何修改,直接放入文件夹即可

运行程序,不出意外的话,你的结果是这个样子的

但是细心的你这个时候会发现这个里面学号的顺序和成绩表里面的顺序是不一样的(本来就是不一样)?,这个时候,你可以再新建一个excel文件,内容如下,ps:就是把你成绩表里面的学号复制过来,我这个表的名字叫:ap学号.xlsx

import pandas as pd

# 地区信息表
df_location = pd.read_excel("D:/桌面文件/ap学号.xlsx" )
df_location.head()

# 数据库导出表
df_number = pd.read_excel("web成绩查询.xlsx",sheet_name="respect")
df_number.head()

df_merge = pd.merge(left=df_location, right=df_number, left_on="学号", right_on="学号")
df_merge.head()
df_merge.to_excel("合并后的数据表.xlsx", index=False)

如果报这个错,那是可能你的excel表格打开了没有关,运行代码时就会报错?

PermissionError: [Errno 13] Permission denied: 'web成绩查询.xlsx'
?

最终代码,用这个就行

import pandas as pd
import os
from openpyxl import Workbook
import numpy as np
import pandas as pd
import xlwt
import openpyxl
kechengbiao="D:/桌面文件/WEB应用系统设计1班.xlsx"#课程表的路径
address="D:/桌面文件/py666/"#导出来文件的路径

def tran_sno_excel():#转移学号到Sheet2
    data = pd.read_excel(kechengbiao, sheet_name=0, header=None,skiprows=6,usecols=[1],dtype=str,nrows=43)#43是我们班的人数
    train_data = np.array(data)  # np.ndarray()
    excel_list = train_data.tolist()  # list
    print(excel_list)
    print(excel_list[0][0])
    print(excel_list[1][0])
    print(len(excel_list))
    print(len(excel_list[0]))
    # 将excel转为列表
    work_book = openpyxl.load_workbook(kechengbiao)#读取追加的excel
    sheet = work_book['Sheet2']#确定追加的sheet
    sheet.cell(row=1, column=1, value="学号")
    for row in range(len(excel_list[0])):
        for col in range(len(excel_list)):
            sheet.cell(row=2+col,column=1,value=excel_list[col][0])#输入数据
    work_book.save(kechengbiao)#追加数据
    print("学号转移成功")

def first_producscore():#所有次成绩显示在python文件夹里面
    sno=[]
    wb = Workbook()
    ws = wb.create_sheet("respect")
    label=[]
    label.append("学号")
    for filename in os.listdir(address):
        label.append(filename)
    firstone=label[1]
    #读取文件的名字
    feature=[]
    df_sno = pd.read_excel("%s%s"%(address,firstone), usecols=[1], names=None,skiprows=0)  # 读取项目名称列,不要列名
    df_li_sno = df_sno.values.tolist()

    for s_li_sno in df_li_sno:
        sno.append(s_li_sno[0])
    sno.pop(1)
    feature.append(sno)
    for i in range(1,len(label)):
        #def excel_one_line_to_list():
            df = pd.read_excel("%s%s"%(address,label[i]), usecols=[9],names=None,skiprows=0)  # 读取项目名称列,不要列名
            df_li = df.values.tolist()
            # print(df_li)
            result = []
            for s_li in df_li:
                result.append(s_li[0])
            result.pop(1)
           # print(result)
            feature.append(result)
    # print('feature:',feature)
    for i in range(len(feature)):
        feature[i].pop(0)
    #写数据
    label = np.array(label)
    feature = np.array(feature)
    label_input = []
    for l in range(len(label)):
        label_input.append(label[l])
    ws.append(label_input)
    for f in range(len(feature[0])):
        ws.append(feature[:, f].tolist())
    # print('sno:',sno)
    wb.save("成绩查询.xlsx")
    print("Ok,respect,成绩生成成功,!!!")


def SnoMatch():
    df_location = pd.read_excel(kechengbiao, sheet_name="Sheet2")
    df_location.head()

    df_number = pd.read_excel("成绩查询.xlsx", sheet_name="respect")
    df_number.head()
    df_merge = pd.merge(left=df_location, right=df_number, left_on="学号", right_on="学号")
    df_merge.head()
    df_merge.to_excel("第二个生成的学号匹配合并后的数据表.xlsx", index=False)#生成第二个学号匹配合并后的数据表
    print("学号匹配合并成功")

def write_lines_excel():
    data = pd.read_excel(r'第二个生成的学号匹配合并后的数据表.xlsx', sheet_name=0, header=None)
    train_data = np.array(data)  # np.ndarray()
    excel_list = train_data.tolist()  # list
    del (excel_list[0])  # 去掉标题
    for i in range(len(excel_list)):  # 去掉学号
        del (excel_list[i][0])
    work_book = openpyxl.load_workbook(kechengbiao)#读取追加的excel
    sheet = work_book['Sheet1']#确定追加的sheet
    for row in range(len(excel_list)):
        for col in range(len(excel_list[i])):
            sheet.cell(row=row+7,column=col+22,value=excel_list[row][col])#输入数据,成绩插入的位置
    work_book.save(kechengbiao)#追加数据
    print("课程表sheet1追加成功")




def sheet3_procde():#追加所有成绩到课程设计表里面的sheet
    data = pd.read_excel(r'第二个生成的学号匹配合并后的数据表.xlsx', sheet_name=0, header=None)
    train_data = np.array(data)  # np.ndarray()
    excel_list = train_data.tolist()  # list
    # print(excel_list)
    work_book = openpyxl.load_workbook(kechengbiao)#读取追加的excel
    sheet = work_book['Sheet3']#确定追加的sheet
    for row in range(len(excel_list)):
        for col in range(len(excel_list[0])):
            sheet.cell(row=row+1,column=col+1,value=excel_list[row][col])#输入数据
    work_book.save(kechengbiao)#追加数据
    print("sheet3追加成功")

if __name__ == '__main__':
    tran_sno_excel()
    first_producscore()
    SnoMatch()
    write_lines_excel()
    sheet3_procde()

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-13 11:43:05  更:2022-05-13 11:43:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 13:51:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码