python删除当前目录下图片(也可以改改删别的)

本文讲述了由于在当前目录下生成过多图片(超过100000张)导致电脑运行缓慢的问题,并分享了一段Python代码来删除指定类型的图片(.png和.jpg)。代码通过os模块的listdir方法获取文件名,然后根据文件名后缀判断并删除图片,避免了使用os.walk可能导致的复杂性。通过这段代码,你可以快速清理大量图片,恢复电脑正常运行。
部署运行你感兴趣的模型镜像

不小心在当前目录生成了100000多张图片,结果电脑直接接近宕机。参考网上例子可以实现,这里没有使用os.walk,原因我没看到walk如何保留子目录下的内容,也许可以每个文件都判断是否为目录?那也太麻烦了,我们直接用后缀。

import os
path = './' #添加自己的相对路径
files= os.listdir(path) #得到文件夹下的所有文件名称
print(files[0:10])#看一看文件都有啥

for pic in files: #遍历文件夹
     
    if pic.endswith(".png"):           
        os.remove(path+'/'+pic)
    elif pic.endswith(".jpg"): 
        os.remove(path+'/'+pic)

这里针对于jpg和png,大家可以看看自用

经评论,现在加了一个path,自行更改

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think> 我们有两个目标: 1. 回答用户当前问题:查找使用Python遍历当前目录下所有后缀为.log文件的方法 2. 根据引用内容和之前的问题,提供相关实现方法 根据用户的问题,他需要的是遍历当前目录(包括子目录)下所有后缀为.log的文件。 我们可以参考引用内容中的几种方法: 引用[1]:使用递归函数(自定义函数)遍历目录,判断文件后缀并删除(这里我们只需要遍历,所以不需要删除操作) 引用[2]:也是递归函数,遍历目录并修改后缀(同样,我们只需要遍历,不需要修改) 引用[3]:使用os.listdir(),但只能遍历当前目录,不能递归子目录 引用[4]:使用os.listdir()遍历当前目录,然后判断后缀,但同样不能递归子目录 然而,用户要求遍历当前目录(包括子目录),所以我们需要一个递归的方法或者使用os.walk。 考虑到之前的问题中已经提到了os.walk,我们可以使用os.walk来实现。 另外,引用[1]和引用[2]使用了递归函数,我们也可以展示递归的方法,但os.walk更简洁。 因此,我们提供两种方法: 方法1:使用os.walk(推荐) 方法2:自定义递归函数(参考引用[1]和[2]) 同时,我们还可以参考引用[3]和[4]中的后缀判断方法(使用os.path.splitext或字符串判断)。 注意:当前目录可以用'.'表示,也可以用os.getcwd()获取当前工作目录。 步骤: 1. 导入os模块 2. 使用os.walk遍历当前目录,或者使用递归函数遍历 3. 对于每个文件,判断后缀是否为'.log' 我们分别实现这两种方法。 方法1:使用os.walk 方法2:自定义递归函数 另外,我们还需要注意:用户可能希望得到文件的完整路径还是相对路径?一般情况下,我们提供完整路径(绝对路径)或相对于当前目录的路径。 在os.walk中,root是当前目录的路径,filename是文件名,所以完整路径是os.path.join(root, filename) 在递归函数中,我们也需要拼接路径。 下面给出代码示例: </think> ### Python 遍历当前目录下所有.log文件的方法 在 Python 中遍历当前目录及其子目录下所有后缀为 `.log` 的文件,主要有以下几种高效实现方式: #### 方法1:使用 `os.walk()`(推荐) ```python import os for root, dirs, files in os.walk('.'): # '.' 表示当前目录 for file in files: if file.endswith('.log'): full_path = os.path.join(root, file) print(f"找到日志文件: {full_path}") # 这里可添加文件处理逻辑 ``` **特点**: 1. 递归遍历所有子目录 2. 返回完整文件路径 3. 支持大目录结构的高效遍历 4. 可动态控制遍历过程(通过修改 `dirs` 列表) #### 方法2:使用 `glob` 模块(Python 3.5+) ```python import glob for log_file in glob.glob('**/*.log', recursive=True): print(f"找到日志文件: {log_file}") # 处理文件逻辑 ``` **特点**: 1. 简洁的单行实现 2. 支持通配符模式匹配 3. `recursive=True` 启用子目录递归 #### 方法3:自定义递归函数(兼容旧版 Python) ```python import os def find_log_files(path='.'): for entry in os.listdir(path): full_path = os.path.join(path, entry) if os.path.isfile(full_path) and full_path.endswith('.log'): print(f"找到日志文件: {full_path}") elif os.path.isdir(full_path): find_log_files(full_path) # 递归调用 find_log_files() ``` **适用场景**: 1. Python 3.5 以下版本 2. 需要更精细的遍历控制 #### 文件处理示例 找到文件后,可进行各种操作: ```python # 批量压缩日志文件 import zipfile with zipfile.ZipFile('logs.zip', 'w') as zipf: for root, _, files in os.walk('.'): for file in files: if file.endswith('.log'): full_path = os.path.join(root, file) zipf.write(full_path) # 添加到压缩包 ``` #### 注意事项 1. 路径表示: - `'.'` 表示当前工作目录 - `os.getcwd()` 获取绝对路径 2. 大小写处理: - 使用 `file.lower().endswith('.log')` 兼容大写扩展名 3. 符号链接: - `os.walk()` 默认不跟进符号链接(`followlinks=False`) > 推荐优先使用 `os.walk()` 方法,它在处理大型目录结构时效率最高且内存占用低[^1]。对于简单场景,`glob` 模块提供最简洁的实现[^3]。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值