在 Python 中,您可以使用内建模组 os 和 shutil 来删除档案和资料夹。以下是一些关键的概念和方法:

删除档案

使用 os.remove() 方法来删除单一档案。范例程式码

import os

# 档案路径
file_path = "example.txt"

# 检查档案是否存在,然后删除
if os.path.exists(file_path):
os.remove(file_path)
print(f"{file_path} 已删除")
else:
print(f"{file_path} 不存在")

注意如果档案不存在且直接执行 os.remove(),会抛出 FileNotFoundError。确保在执行删除前,确认档案路径正确。

删除空资料夹

使用 os.rmdir() 删除空资料夹。范例程式码

import os

# 资料夹路径
folder_path = "empty_folder"

# 检查资料夹是否存在,然后删除
if os.path.exists(folder_path):
os.rmdir(folder_path)
print(f"{folder_path} 已删除")
else:
print(f"{folder_path} 不存在")

os.rmdir() 只能删除空资料夹。如果资料夹中有档案,会引发 OSError。

删除非空资料夹

使用 shutil.rmtree() 删除资料夹及其内容(包含档案和子资料夹)。范例程式码

import shutil

# 资料夹路径
folder_path = "non_empty_folder"

# 检查资料夹是否存在,然后删除
if os.path.exists(folder_path):
shutil.rmtree(folder_path)
print(f"{folder_path} 已删除,包括其中的所有内容")
else:
print(f"{folder_path} 不存在")

注意shutil.rmtree() 是强力删除,会移除资料夹及其所有内容,请谨慎操作。如果要在删除前询问用户确认,可以结合输入功能。

其他实用技巧

删除特定条件的档案可以结合 os.listdir() 和条件判断来删除特定档案,例如删除 .txt 档案:

import os

folder_path = "example_folder"

# 列出资料夹中的档案
for file_name in os.listdir(folder_path):
if file_name.endswith(".txt"): # 找到所有 .txt 档案
os.remove(os.path.join(folder_path, file_name))
print(f"{file_name} 已删除")

避免潜在问题

权限问题:确认执行程式的使用者具有删除档案/资料夹的权限。不存在的路径:在操作前使用 os.path.exists() 确保路径有效。不必要的递迴操作:避免错误地删除不应删除的父资料夹。