当前位置: 代码迷 >> 综合 >> 收作业小工具(工具)
  详细解决方案

收作业小工具(工具)

热度:9   发布时间:2024-02-27 07:10:13.0

平台:

64位系统

说明:

全班的作业在一个文件夹中,标准化命名后统计出谁没交作业

所用库:

#有几个用不上
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from lxml import etree
from tkinter import *
import requests
import random
import pyautogui
import pyperclip
import re
import os
import time
from PIL import Image

任务分解:

1.删除学号相同的文件(删除修改时间靠前的)

2.重命名,统一格式

3.生成没交的名单

代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from lxml import etree
from tkinter import *
import requests
import random
import pyautogui
import pyperclip
import re
import os
import time
from PIL import Imagepath = r''   #运行程序前,记得修改主文件夹路径!
text=""
var=1
Sno={}
Sno_18={'191530101':'张三','191530102':'张四'}#以字典的形式存入学生信息
def no_data():re_no = set()os.chdir(path)old_names = os.listdir( path )  #取路径下的文件名,生成列表for f_name in old_names:   #遍历列表下的文件名for s_name in old_names:   #遍历列表下的文件名if f_name.split('-')[0] == s_name.split('-')[0]:f_time = os.stat(os.path.abspath(f_name)).st_mtimes_time = os.stat(os.path.abspath(s_name)).st_mtimeif s_time < f_time:re_no.add(s_name)for i in re_no:os.remove(i)def rename_subfolders():  old_names = os.listdir( path )  #取路径下的文件名,生成列表for old_name in old_names:   #遍历列表下的文件名if old_name.split('.')[1] == 'docx'  or old_name.split('.')[1] == 'doc' :  #防止脚本文件放在path路径下时,被一起重命名tail = old_name.split('.')[1]sno=old_name.split('-')[0] new_name = sno + '-' + Sno[sno] + '-' +text + '.' + tailos.rename(os.path.join(path,old_name),os.path.join(path,new_name))  #子文件夹重命名def no_summit_stu():old_names = os.listdir( path )  #取路径下的文件名,生成列表for old_name in old_names:   #遍历列表下的文件名if old_name.split('.')[1] == 'docx'  or old_name.split('.')[1] == 'doc' : sno=old_name.split('-')[0]Sno.pop(sno)f = open(path +'/not_summit.txt','w',encoding='utf-8')for k,v in Sno.items():			# 遍历字典中的键值s2 = str(v)                 f.write(k+'\t')             f.write(s2+'\n')def window():window = Tk()window.title('rename')window.geometry('1000x500') l = Label(window, text='修改文件名&&统计名单', bg='green', font=('Arial', 12), width=30, height=2)# 说明: bg为背景,font为字体,width为长,height为高,这里的长和高是字符的长和高l.pack() var_usr_name = StringVar()Label(window, text='path:',font=('Arial', 14)).place(x=300, y=100)Entry(window, textvariable=var_usr_name,  font=('Arial', 14)).place(x=375,y=100)var_usr_id = StringVar()Label(window, text='suffix:',font=('Arial', 14)).place(x=300, y=150)Entry(window, textvariable=var_usr_id,  font=('Arial', 14)).place(x=375,y=150)global varvar  =  IntVar()var.set(1)def r1():global varvar =1def r2():global varvar =0r1 = Radiobutton(window, text='不改后缀', variable=var, value=1,font=('Arial', 14),command=r1).place(x=500,y=200)r2 = Radiobutton(window, text='改后缀', variable=var, value=0,font=('Arial', 14),command=r2).place(x=375,y=200)def hit_me():global Sno,Sno_18Sno=Sno_18.copy()global pathpath = var_usr_name.get()no_data()if var==0:print('OK')global texttext = var_usr_id.get()rename_subfolders()no_summit_stu()b = Button(window, text='确定', font=('Arial', 12), width=10, height=1, command=hit_me).place(x=436,y=250)window.mainloop()if __name__ == '__main__': window()

转EXE:

pyinstaller -F 绝对路径 -w

缺陷:

只适用于自己班,因为学生信息是自己班的

总结:


实测好用,免去检查了。有建议欢迎表达。

QQ:1071949367,交个朋友!

  相关解决方案