作为一个认真负责好吃懒做 的课代表,收作业就要确认谁没交,一共交了多少人,还要注意提交命名格式(主要还是这个),So,顺手写了个小程序
# 获取含实验报告文件夹列表
def get_file():
file_name = []
# 可以自己放路径,我就放在上一级
for item in os.listdir():
# 对了,这文件夹是我手动创建了,有兴趣的可以自己弄个创建文件夹的代码
if os.path.isdir(item) and '实验报告' in item:
file_name.append(item)
return file_name
def start():
dict = {}
# 做数据库太多余了,还是做成txt好
StudentData = '学生名单路径'
with open(StudentData, 'r', encoding='utf-8')as f:
for i in f:
# 我们这是学号+姓名,所以我用学号作为键,-1就是去\n
dict[i[:9]] = i[9:-1]
# 将全部学号弄成列表,看看谁没有交
list2 = list(dict.keys())
file_name = get_file()
print(file_name)
s = int(input('哪个文件夹?[1~999] '))
# 文件路径
file_path = os.path.join(os.getcwd(),file_dir[s-1])
# 获取文件夹下面的文件目录
filename = os.listdir(file_path)
# 这循环还可以优化下
for i in filename:
for k, v in dict.items():
if k in i:
# 重命名好像是创建新文件,容易重复删除,然后报错
if k in list2:
list2.remove(k)
if not os.path.exists(os.path.join(file_path,k + v + '.doc')):
# 命名规范
old = os.path.join(file_path,i)
new = os.path.join(file_path,k + v + '.doc')
# 你是重命名还是创建新文件啊?为什么会多了呢
os.rename(old,new)
print(f'共交了:{len(filename)}人')
for XH in list2:
print(f'{dict.get(XH)}未交')
input('完成')
start()
最后有请打包库pyinstaller出场了
让我看看谁没有交,再找他算账