You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现删除目录中除指定文件外的所有文件

解决方法:用纯Python实现(跨平台,无系统命令兼容问题)

你之前用rm、find命令报错,是因为这些是Linux/Unix系统的专属命令,而你应该是在Windows环境下运行代码——Windows的命令提示符不支持这类指令,所以才会出现"不是内部或外部命令"、"参数格式不正确"的错误。

直接用Python标准库实现,不用依赖系统命令,更稳妥:

方法1:使用os模块

import os

# 目标目录路径,main.py和X同级,直接写'X'即可
target_dir = 'X'

# 遍历目录下的所有文件和子目录
for filename in os.listdir(target_dir):
    # 跳过要保留的文件'1'
    if filename == '1':
        continue
    # 拼接完整文件路径
    file_path = os.path.join(target_dir, filename)
    # 仅处理文件(如需删除子目录,可修改判断逻辑)
    if os.path.isfile(file_path):
        try:
            os.remove(file_path)
            print(f"已删除文件: {file_path}")
        except Exception as e:
            print(f"删除文件{file_path}失败: {e}")

方法2:使用pathlib模块(Python 3.4+推荐)

pathlib是更现代的路径处理方式,代码更简洁直观:

from pathlib import Path

# 目标目录路径
target_dir = Path('X')

# 遍历目录下的所有条目
for item in target_dir.iterdir():
    # 跳过要保留的文件'1',且仅处理文件
    if item.name == '1' or not item.is_file():
        continue
    try:
        item.unlink()
        print(f"已删除文件: {item}")
    except Exception as e:
        print(f"删除文件{item}失败: {e}")

补充说明

  • 如果目录X里包含子目录,且你需要删除这些子目录:可将判断is_file()的逻辑替换为is_dir(),空目录用os.rmdir()删除,非空目录用shutil.rmtree()删除(需提前导入shutil模块)。
  • 代码中的try-except用于处理异常场景,比如文件被占用、无操作权限等情况。

内容的提问来源于stack exchange,提问作者Hawshemi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:00:50