背景
之前垃圾篓莫名出现了几个空文件夹,删除时报错该文件正在运行中。
措施
在一开始搜索了网上的方法,包括重启 MAC 什么的,都不生效。
后面想到之前跑 python 脚本误删的文件根本找不到,所以尝试使用 python 来删除。
解决方案
开启脚本访问磁盘权限:
- 系统偏好设置 → 安全性与隐私 → 隐私 → 完全磁盘访问
- 解锁后添加当前使用的终端应用
代码:
py
import os
import subprocess
def empty_trash():
trash_path = os.path.expanduser('~/.Trash')
if not os.path.exists(trash_path):
print("垃圾桶路径不存在:", trash_path)
return
print(f"开始清理垃圾桶,共检测到 {len(os.listdir(trash_path))} 个项目...")
for item in os.listdir(trash_path):
item_path = os.path.join(trash_path, item)
if item == '.DS_Store':
try:
os.unlink(item_path)
print(f"已删除系统文件: {item}")
except:
continue
if os.path.isdir(item_path):
try:
sub_items = os.listdir(item_path)
if not sub_items or all(x.startswith('.') for x in sub_items):
try:
# 尝试普通删除
os.rmdir(item_path)
print(f"成功删除空文件夹: {item}")
except Exception as e:
print(f"无法删除 {item},尝试强制删除...")
subprocess.run(['/bin/rm', '-rf', item_path], check=True)
print(f"已强制删除: {item}")
except Exception as e:
print(f"目录访问错误: {item} - {str(e)}")
continue
if __name__ == "__main__":
empty_trash()
感想
- 代码由 Trea 的 DeepSeek-V3-0324 生成。
- 用 AI coding 简单任务非常高效,一共三个来回就生成了最终代码(过程中出现了生成缩进不合规范的情况),但总体来说瑕不掩瑜。
- 被这几个空文件夹折磨了几个月终于解决了。