文件整理是很适合练习 Python 的小任务。但“自动处理”不应该从直接移动一整个目录开始。先生成计划,检查结果,再决定是否执行,会更容易发现规则中的问题。
第一步:只读扫描
下面的脚本仅扫描指定目录的第一层文件,按扩展名生成分组建议。它不会移动、重命名或删除任何文件。建议先在测试目录里放几份样本。
from pathlib import Path
folder = Path("./sample-files")
if not folder.is_dir():
raise SystemExit("请先创建 sample-files 测试目录")
for file in sorted(folder.iterdir()):
if file.is_symlink() or not file.is_file():
continue
group = file.suffix.lower().lstrip(".") or "no-extension"
target = folder / group / file.name
print(f"建议:{file.name} → {target}")第二步:检查边界情况
- 文件没有扩展名时,应该放在哪一组?
- 同名文件已经存在时,是否跳过并记录?
- 快捷方式、符号链接和隐藏文件是否需要排除?
- 目录是否包含其他程序正在使用的文件?
第三步:将执行与预览分开
真正实现移动时,可以增加一个显式执行参数,默认保持预览。执行前检查目标是否存在,避免覆盖。逐条保存操作日志,并准备备份或恢复方案。
这里提供的是预览脚本。请在确认目录和分组规则后,再单独实现写入操作。
小脚本的价值,不只是节省几次拖拽,也在于把原本模糊的整理习惯变成清晰、可检查的规则。