python 磁盘垃圾文件清理器

实验:磁盘垃圾文件清理器
  本实验的新点在于python程序接收命令行参数的方式,我已整理在前面的博文中,虽然没有用到getopt模块,但这真的是一个很重要的模块,请参见:Python 命令行参数sys.argv和getopt
  还有就是递归遍历目录树:一般就以下这三步

# os.listdir(path)获取路径下的所有文件名和文件夹名
# os.path.join连接输入的路径名和刚得到的文件名和或文件夹名
# 判断
#os.path.isdir判断如果连接后的路径为一个文件夹名,则递归;否则对得到的文件名进行相应操作

  知道了这些,这个实验相当简单:

文章目录

    • 一、实验目的
    • 二、实验内容
    • 三、实验环境
    • 四、实验代码及测试截图
        • 代码:
        • 测试:

一、实验目的

  熟练运用标准库os和os.path中的函数,理解sys库中argv成员用法,理解python程序接收命令行参数的方式,理解递归遍历目录树的原理。

二、实验内容

  编写程序,实现磁盘垃圾文件清理功能。要求程序运行时,通过命令行参数指定要清理的文件夹,然后删除该文件夹及其子文件夹中所有扩展名为tmp、log、obj、txt 以及大小为0 的文件。

三、实验环境

  Python 3.6及以上版本

四、实验代码及测试截图

代码:

from os.path import isdir,join,splitext,getsize
from os import remove,listdir
import sys

garbage_extension = ['.tmp', '.log', '.obj', '.txt']

def garbagefile_clean(path):
    for parents in listdir(path):
        child = join(path,parents)
        if isdir(child):
            garbagefile_clean(child)
        elif splitext(child)[1] in garbage_extension or getsize(child)==0:
            remove(child)
            print(child, "deleted....")

    
# garbagefile_clean(r"E:\test")
for path in sys.argv[1:]:
    if isdir(path):
        garbagefile_clean(path)

测试:

测试之前的目录:
python 磁盘垃圾文件清理器_第1张图片
python 磁盘垃圾文件清理器_第2张图片
python 磁盘垃圾文件清理器_第3张图片
在该py文件下右键打开cmd,
python 磁盘垃圾文件清理器_第4张图片

测试之后的目录:
python 磁盘垃圾文件清理器_第5张图片
在这里插入图片描述
在这里插入图片描述

你可能感兴趣的:(python 磁盘垃圾文件清理器)