一、实验目的
熟练运用标准库os和os.path中的函数,理解sys库中argv成员用法,理解python程序接收命令行参数的方式,理解递归遍历目录树的原理。
二、实验所用仪器(或实验环境)
Python 3.6及以上版本
三、实验基本原理及步骤(或方案设计及理论计算)
实验内容:
编写程序,实现磁盘垃圾文件清理功能。要求程序运行时,通过命令行参数指定要清理的文件夹,然后删除该文件夹及其子文件夹中所有扩展名为tmp、log、obj、txt 以及大小为0 的文件。
实验步骤:
- 1.查看帮助手册,了解os.path模块中的isdir,join,splittext,getsize方法,以及os库中的remove,listdir方法。
- 2.编写一个函数,该函数带有一个参数为指定的文件夹。函数删除该文件夹及其子文件夹中所有指定的文件类型。
四、实验数据记录(或仿真及软件设计)
代码:
def delete_file(get_dir):
if opt.isdir(get_dir):
# print(type(os.listdir(argv[1]))) # 列表
dir_lists = os.listdir(get_dir)
print(dir_lists)
for get_file in dir_lists:
# 拼接路径
get_file=os.path.join(get_dir,get_file)
if opt.isdir(get_file):
# 如果是文件夹,递归删除
delete_file(get_file)
else:
result=opt.splitext(get_file)
if ((result[1] in format) or (opt.getsize(get_file) == 0)):
os.remove(get_file)
print(get_file+"---->delete")
format=['.tmp','.log','.obj','.txt']
get_dir = argv[1]
delete_file(get_dir)
截图涉及个人隐私没截了…