python - 在python中对目录中的文件夹(字母和数字的组合)进行排序
问题描述
我想修改目录中的文件夹名称并对它们进行排序,如果有人可以帮助我,我将不胜感激。
例如:我有一个目录,其中包括 sam1 .... sam100000(最好我们不知道我们有多少个文件夹)。我想要在输出目录中对名称进行排序和修改,例如,如果最后一个文件夹有 6 个数字,第一个文件夹看起来像 sam000001(添加 5 个零),对于 sam15,它将是 sam000015(添加 4 个零)。
提前致谢
import os
import os.path
E = 0
for _, dirnames, filenames in os.walk('path'):
E += len(dirnames)
formating= "{0:6}"
enum=["{0:6}".format(i) for i in range (1,E)]
original=[i for i in range (1,E)]
start='sam'
for i in original :
os.rename(start+str(i),start+enum[i])
解决方案
从文件夹名称中,您需要两件事
新名称:构建格式
"{}{:0%sd}" % padding_size
=>"{}{:06d}"
oldname = "folder15" padding_size = 6 parts = re.search("(.*?)(\d+)", oldname).groups() newname = ("{}{:0%sd}" % padding_size).format(parts[0], int(parts[1])) print(newname) # folder000015
重命名它使用
os.rename(oldpath, newpath)
推荐阅读
- runtime-error - codechef ide 中的 SIGTSTP
- java - 尝试绘制填充视口的圆圈网格,但网格从中心开始
- linux - 有人可以帮我执行这些命令吗?
- reactjs - DOM 不会在值更改时更新
- javascript - 为 JavaScript 中的事件返回事件处理程序
- kubernetes - apacheignite/web-agent:2.7.0 /2.6.0 两个图像看起来都已损坏
- excel - Excel 工作表引用一般和超链接功能
- javascript - webpack 无法加载模块或块时的事件或回调
- python - 为用户生成推荐的电影列表
- hive - 用于迭代和搜索元素的 Hive 查询