找回密码
 立即注册
搜索
到手67.99元!阿里云轻量2核2G云服务器
查看: 15|回复: 0

Python删除文件、文件夹常用方法

[复制链接]

708

主题

0

回帖

11

积分

管理员

积分
11
发表于 昨天 09:42 | 显示全部楼层 |阅读模式
一、删除单个文件(文件不是文件夹)
1. os.remove () 最常用
只能删文件,不能删文件夹;文件不存在会报错
  1. import os

  2. # 绝对路径/相对路径都行
  3. file_path = "test.txt"
  4. os.remove(file_path)
复制代码

2. pathlib.Path.unlink ()
  1. from pathlib import Path

  2. p = Path("test.txt")
  3. p.unlink(missing_ok=True)  # missing_ok=True:文件不存在也不报错
复制代码

二、删除空文件夹
只能删空目录,里面有文件会报错
1. os.rmdir()
  1. import os
  2. os.rmdir("empty_folder")
复制代码

2. pathlib.Path.rmdir()
  1. from pathlib import Path
  2. Path("empty_folder").rmdir()
复制代码

三、删除非空文件夹(文件夹 + 内部所有文件 / 子目录)
1. shutil.rmtree () 万能删除(最常用)
递归删除整个目录,不管里面有没有内容
  1. import shutil

  2. # 删除整个文件夹及其所有内容
  3. shutil.rmtree("target_folder")

  4. # 忽略不存在目录报错
  5. shutil.rmtree("target_folder", ignore_errors=True)
复制代码

2. pathlib 递归删除(自己遍历,适合精细控制)
  1. from pathlib import Path

  2. def del_dir_all(path: Path):
  3.     if path.is_dir():
  4.         # 先删里面所有内容
  5.         for child in path.iterdir():
  6.             del_dir_all(child)
  7.         path.rmdir()
  8.     else:
  9.         path.unlink()

  10. del_dir_all(Path("文件夹路径"))
复制代码

四、常用避坑写法(加判断,防止报错)
  1. import os, shutil

  2. # 删除文件前判断是否存在
  3. def delete_file(path):
  4.     if os.path.isfile(path):
  5.         os.remove(path)

  6. # 删除文件夹(无论空非空)
  7. def delete_folder(path):
  8.     if os.path.isdir(path):
  9.         shutil.rmtree(path)
复制代码

注意事项
删除后无法恢复,谨慎使用;
Windows 系统文件被占用时会删除失败;
路径建议统一用绝对路径避免出错。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|skypiea

GMT+8, 2026-7-29 08:21 , Processed in 0.041337 second(s), 20 queries .

Powered by skypiea

快速回复 返回顶部 返回列表