熟练运用标准库os和os.path中的函数,理解sys库中argv成员用法,理解python程序接收命令行参数的方式,理解递归遍历目录树的原理。 编写程序,实现磁盘垃圾文件清理功能。要求程序运行时,通过命令行参数指定要清理的文件夹,然后删除该文件夹及其子文件夹中所有扩展名为tmp、log、obj、txt 以及大小为0 的文件。
Python3.8
连接两个路径 如果路径名引用现有目录,则返回true 从文件名中分割出扩展名 返回文件的大小 删除一个文件 返回包含目录中文件名称的列表 **sys.argv()**函数 获取运行python文件的时候命令行参数 更详细易懂的描述在:
https://blog.csdn.net/csdn15698845876/article/details/74909089
运行程序之前:
运行程序之后:
程序及运行结果:
# -*- coding: utf-8 -*- """ Created on Sun May 31 17:00:08 2020 @author: natur """ #检查路径是否为文件,不是就检查文档下的文件是否为文档,重复循环 #编写一个函数,该函数带有一个参数为指定的文件夹。函数删除该文件夹及其子文件夹中所有 #指定的文件类型。 from os.path import isdir,join,splitext,getsize from os import remove,listdir import sys def Delete(path): if isdir(path)== True: for item in listdir(path): item = join(path,item) if isdir(item) == False: if splitext(item)[1] in extension or getsize(item) == 0: remove(item) print(item,"deleted") else: Delete(item) extension = ['.tmp', '.log', '.obj', '.txt'] path = sys.argv[1] Delete(path)思路: 利用 os.path.isdir() 函数路径是否为文档,再利用 os.listdir() 得到路径下的文件列表,是就循环检查文档下的文件列表中是否又有文档,如果是则迭代创建的函数;如果不是,则为文件,利用 os.path.splitext() 函数分割出扩展名,判断它的扩展名是否在我们的需求内,或者利用os.path.getsize() 函数得到文件大小,判断是否为0,如果两个条件满足一个,则利用 os.remove() 删除该文件,并将其路径利用 os.path.join() 函数将文件路径以及文件结合进行输出。文件路径的得知主要依靠 sys.argv()[1] 函数,通过命令行得到