投稿  收藏 
收集优秀作业

【问题描述】

老师批改了学生作业,对于优秀的学生作业,在文件夹名后加字母g(如“谌维成-循环结构作业g”),所有已批改作业都保存在“已批改学生作业”文件夹中。现请将所有学生的优秀作业复制到“优秀学生作业”文件夹中。

收集优秀作业输出结果:

输出结果如图7-1-5所示。

收集优秀作业

图7-1-5 输出优秀作业文件截图

【题前思考】

根据问题描述,填写表7-1-4。

表7-1-4 问题分析

收集优秀作业

【解题思路】

读出学生作业文件夹中的所有子文件夹,如果子文件夹以字母g结尾,则这个作业就是优秀作业。然后,调用shutil模块中的copytree( )函数就可以将优秀作业复制出来。

【程序代码】

收集优秀作业

【代码分析】

①:shutile是Python的一个标准库,本条语句是从库中导入copytree( )、rmtree( )两个函数,copytree( )复制文件夹的所有内容包括其中所有的子文件夹中的内容,rmtree( )删除文件夹中的所有内容包括子文件夹中的内容。

②:将程序文件所在的文件夹路径与字符串“优秀学生作业”连接起来形成完整路径,goodPath是保存“优秀学生作业”的文件路径。

③:os.path.exists(goodPath)判断文件夹“优秀学生作业”是否存在。如果文件夹存在,则使用rmtree(goodPath)删除旧的文件夹,因为在同一个文件夹中不允许同时出现两个同名的文件夹。

④:创建一个新的空文件夹“优秀学生作业”用于存放优秀学生作业。

⑤:对path文件夹下的所有文件和子文件夹执行循环体。此处,path是“已批改学生作业”的完整路径。

⑥:构成学生作业文件夹的完整路径。

⑦:如果路径为文件夹且文件夹名的最后一个字符为“g”,就表明这是一份优秀学生作业,所以需要复制文件夹中的所有内容。copytree(e,os.path.join(goodPath,file))将文件路径e中的内容复制到“优秀学生作业”文件夹中。copytree(e,f)的第一个参数e表示源位置,第二个参数f表示目的位置,就是将e复制到f。

⑧:调用函数从“已批改学生作业”文件夹将优秀作业复制到“优秀学生作业”文件夹中。

【技术全貌】

shutile模块提供了一系列对文件和文件集合的高阶操作。表7-1-5列出了shutile的部分操作。

表7-1-5 shutile部分操作

收集优秀作业

关 键 词

收集优秀作业

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢