Python脚本 处理目录下以.class或其他类型结尾的所有文件

我们在代码开发项目过程中,有的时候不同环境可能大码执行的方式不同,可能在windows下会用idea,eclipse内置的逻辑来运行Java

在Unix环境就要配合命令行指令编译出.class文件再送给JVM进行处理,一种方式是git同步的时候忽略.class文件,要么就是在某一平台运行管理的时候,另外用脚本进行无用文件的删除工作。

例如:

多层目录下会有.class文件,我们需要进行删除。


 可以使用 Python 的 os 和 shutil 模块来实现删除目录下所有以 .class 结尾的文件。具体代码如下:

import os
import shutil

def remove_class_files(dir_path):
    """
    删除指定目录及其子目录下的所有以 .class 结尾的文件,并输出删除记录。
    :param dir_path: 目录路径
    """
    count = 0  # 统计删除的文件个数
    for root, dirs, files in os.walk(dir_path):
        for file in files:
            if file.endswith('.class'):
                file_path = os.path.join(root, file)
                os.remove(file_path)  # 删除文件
                count += 1
                print(f'Deleted file: {file_path}')
    print(f'Total deleted files: {count}')


# 测试代码,删除当前目录下所有以 .class 结尾的文件
remove_class_files('.')

该脚本中,os.walk() 方法用于遍历指定目录及其子目录下的所有文件和文件夹。对于每个找到的文件,如果其以 .class 结尾,则使用 os.remove() 方法删除该文件,并统计删除的文件个数及输出删除记录。

需要注意的是,在运行脚本时需谨慎,确保没有误删重要文件,建议先备份数据。


如果需要对过程进行持久化,并对要删除的内容不放心,我们可以将数据放入一个回收站,并以文件的方式输出我们的删除行为。

具体代码如下:

import os
import shutil

def remove_class_files(dir_path):
    """
    删除指定目录及其子目录下的所有以 .class 结尾的文件,并输出删除记录。
    :param dir_path: 目录路径
    """
    count = 0  # 统计删除的文件个数
    trash_dir = os.path.join(dir_path, 'trash')  # 创建 trash 文件夹
    if not os.path.exists(trash_dir):
        os.mkdir(trash_dir)
    log_file = os.path.join(dir_path, 'deleted_files.log')  # 创建日志文件
    with open(log_file, 'w') as f:
        for root, dirs, files in os.walk(dir_path):
            for file in files:
                if file.endswith('.class'):
                    file_path = os.path.join(root, file)
                    trash_file_path = os.path.join(trash_dir, file)  # 构造 trash 文件夹下的文件路径
                    shutil.move(file_path, trash_file_path)  # 移动文件到 trash 文件夹
                    count += 1
                    print(f'Deleted file: {file_path}')
                    f.write(f'Deleted file: {file_path}\n')  # 记录删除文件
        f.write(f'Total deleted files: {count}')  # 记录总共删除的文件数


# 测试代码,删除当前目录下所有以 .class 结尾的文件
remove_class_files('.')

该脚本中,在删除 .class 文件之前,先创建了一个名为 trash 的文件夹,并在代码中使用 shutil.move() 方法将要删除的文件移动到该文件夹下。同时,记录已删除的文件和总共删除的文件数操作也被修改,现在所有的日志信息都会写入 deleted_files.log 文件中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值