收作业小工具(工具)

   日期:2020-10-13     浏览:90    评论:0    
核心提示:平台:64位系统说明:全班的作业在一个文件夹中,标准化命名后统计出谁没交作业所用库:#有几个用不上from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom lxml import etreefrom tkinter import *import requestsimport randomimport pyautoguiimport pyperclipimport

平台:

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 Image

path = 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_mtime
                s_time = os.stat(os.path.abspath(s_name)).st_mtime
                if 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 + '.' + tail
            os.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 var
    var  =  IntVar()
    var.set(1)
    def r1():
        global var
        var =1
    def r2():
        global var
        var =0
    r1 = 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_18
        Sno=Sno_18.copy()
        global path
        path = var_usr_name.get()
        no_data()
        if var==0:
            print('OK')
            global text
            text = 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,交个朋友!

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服