环球热议:python程序接收命令行参数的方式及步骤

发布时间:   来源:CSDN  

一、实验目的


【资料图】

熟练运用标准库os和os.path中的函数,理解sys库中argv成员用法,理解python程序接收命令行参数的方式,理解递归遍历目录树的原理。 编写程序,实现磁盘垃圾文件清理功能。要求程序运行时,通过命令行参数指定要清理的文件夹,然后删除该文件夹及其子文件夹中所有扩展名为tmp、log、obj、txt 以及大小为0 的文件。

二、实验环境

Python3.8

三、实验基本原理及步骤

1. 查看帮助手册,了解os.path模块中的isdir,join,splitext,getsize方法,以及os库中的remove,listdir方法。

连接两个路径 如果路径名引用现有目录,则返回true 从文件名中分割出扩展名 返回文件的大小 删除一个文件 返回包含目录中文件名称的列表 **sys.argv()**函数 获取运行python文件的时候命令行参数 更详细易懂的描述在:

2. 编写一个函数,该函数带有一个参数为指定的文件夹。函数删除该文件夹及其子文件夹中所有指定的文件类型。

3. 程序示例输出如下:

运行程序之前:

运行程序之后:

四、实验数据记录(或仿真及软件设计)

程序及运行结果:

# -*- coding: utf-8 -*-"""Created on Sun May 31 17:00:08 2020@author: natur"""#检查路径是否为文件,不是就检查文档下的文件是否为文档,重复循环#编写一个函数,该函数带有一个参数为指定的文件夹。函数删除该文件夹及其子文件夹中所有#指定的文件类型。from os.path import isdir,join,splitext,getsizefrom os import remove,listdirimport sysdef 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]函数,通过命令行得到

相关文章Related

返回栏目>>