python - 在mac上重命名一堆文件
问题描述
我想在mac上重命名一堆文件,我想知道是否有一个实用程序可以做到这一点,或者我是否需要进入像python这样的东西。这是我想做的重命名:
我想 zfill 所以数字的形式是\d{3}
,即GM008.mp3
。mac中有没有办法做到这一点,或者什么可能是最快的方法?我目前正在做的是python中的单线:
[os.rename(src, './GM' + src.split('GM')[1].split('.')[0].zfill(3) + '.mp3') for src in os.listdir('.')]
# ['GM001.mp3', 'GM000.mp3', 'GM003.mp3', 'GM007.mp3', 'GM006.mp3', 'GM012.mp3', 'GM004.mp3', 'GM005.mp3', 'GM008.mp3', 'GM009.mp3', etc...]
解决方案
这应该很安全;我们正在寻找与您的 mp3 格式完全匹配的内容,GM\d+\.mp3
并.mp3
使用zfill
. os
与平台无关。
import os
import re
for fname in [x for x in os.listdir(".") if re.fullmatch(r"GM\d+\.mp3", x)]:
os.rename(fname, re.sub(r"(\d+)(?=\.mp3)", lambda x: x.group(1).zfill(3), fname))
推荐阅读
- python - Hue 4.2 上是否存在已知的内存泄漏问题?
- mysql - 如何从本地 HeidiSQL 中的 docker 容器打开 MySQL 数据库
- android - 如何在android中的Dynamic Spinner中获取选定的项目ID值
- unity3d - 模型导入 3DS Max 到 Unity 时的缩放和旋转问题
- c++ - 为什么重载 operator<< 以打印 Eigen 类成员会导致段错误?
- sql-server - 向投影添加更多子查询时 SQL 语句嵌套太深
- java - 使用杰克逊解析 json
- android - 成功支付opencart api android后如何完成订单?
- php - 运行 PHPUnit 时 Symfony 2.8 验证器弃用通知
- javascript - setState 反应生成数组结果