在 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() 确保路径有效。不必要的递迴操作:避免错误地删除不应删除的父资料夹。