【问题描述】J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
老师批改了学生作业,对于优秀的学生作业,在文件夹名后加字母g(如“谌维成-循环结构作业g”),所有已批改作业都保存在“已批改学生作业”文件夹中。现请将所有学生的优秀作业复制到“优秀学生作业”文件夹中。J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
输出结果:J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
输出结果如图7-1-5所示。J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
图7-1-5 输出优秀作业文件截图J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【题前思考】J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
根据问题描述,填写表7-1-4。J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
表7-1-4 问题分析J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【解题思路】J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
读出学生作业文件夹中的所有子文件夹,如果子文件夹以字母g结尾,则这个作业就是优秀作业。然后,调用shutil模块中的copytree( )函数就可以将优秀作业复制出来。J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【程序代码】J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【代码分析】J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
①:shutile是Python的一个标准库,本条语句是从库中导入copytree( )、rmtree( )两个函数,copytree( )复制文件夹的所有内容包括其中所有的子文件夹中的内容,rmtree( )删除文件夹中的所有内容包括子文件夹中的内容。J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
②:将程序文件所在的文件夹路径与字符串“优秀学生作业”连接起来形成完整路径,goodPath是保存“优秀学生作业”的文件路径。J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
③:os.path.exists(goodPath)判断文件夹“优秀学生作业”是否存在。如果文件夹存在,则使用rmtree(goodPath)删除旧的文件夹,因为在同一个文件夹中不允许同时出现两个同名的文件夹。J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
④:创建一个新的空文件夹“优秀学生作业”用于存放优秀学生作业。J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
⑤:对path文件夹下的所有文件和子文件夹执行循环体。此处,path是“已批改学生作业”的完整路径。J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
⑥:构成学生作业文件夹的完整路径。J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
⑦:如果路径为文件夹且文件夹名的最后一个字符为“g”,就表明这是一份优秀学生作业,所以需要复制文件夹中的所有内容。copytree(e,os.path.join(goodPath,file))将文件路径e中的内容复制到“优秀学生作业”文件夹中。copytree(e,f)的第一个参数e表示源位置,第二个参数f表示目的位置,就是将e复制到f。J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
⑧:调用函数从“已批改学生作业”文件夹将优秀作业复制到“优秀学生作业”文件夹中。J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
【技术全貌】J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
shutile模块提供了一系列对文件和文件集合的高阶操作。表7-1-5列出了shutile的部分操作。J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
表7-1-5 shutile部分操作J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
J7b100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库