- 写在前面:大家好,我是来自财务管理专业的大二学生,这是我的第二个博客啦
- 问题导入:有一个表格,里面储存有学生的学号和姓名信息;有一堆学生提交的python文件作业。现在需要根据文件名提取学号,以统计交作业名单,并复制该文件,以学号命名移到规范文件夹里,并将文件名不规范的移到新目录下不规范文件夹里
- 解决方案:我给出的方案如下,注释相当清楚,便于萌新阅读,也欢迎讨论哦
import openpyxl
import os
import shutil
os.mkdir('不规范文件')
os.mkdir('规范文件')
wb_stu=openpyxl.load_workbook('Python2_stu2.xlsx')
sheet_pythonstu=wb_stu['Python2_stu2']
l=[]
for row in sheet_pythonstu.rows:
for cell in row:
if str(cell.value).isdigit()==True:
l.append(cell.value)
def notsubmit():
list_totalfile=os.listdir(r'ex2作业文件\收到的文件')
num_notsubmit=len(l)-len(list_totalfile)
print(f'有{num_notsubmit}位同学未提交,请自觉一点')
def onefiledealname(filename):
str_num=''
for i in str(filename):
if str(i).isdigit()==True:
str_num+=str(i)
if len(str_num)<=14:
return filename
else:
str_stu=str_num[0:8]
str_stu+='.py'
return str_stu
def filecopy():
for i in os.listdir('ex2作业文件/收到的文件'):
name=onefiledealname(i)
if len(name)==11:
new_name='规范文件/'+name
else:
new_name='不规范文件/'+name
old_name='ex2作业文件/收到的文件/'+str(i)
shutil.copyfile(old_name,new_name)
if __name__=='__main__':
notsubmit()
filecopy()
- 写到最后:通过这个练习,我对文件的复制有了更深的体会,最终使用了copyfile函数来实现。目前我不知道怎么把用到的资料上传,如果有萌新想借此练习练习,留下你的邮箱就好。请多多点赞评论哦!o( ̄▽ ̄)ブ