在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])

解决方案:

从文件夹名称中,你需要2件事情

  • 新名称:构建格式 "{}{: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)

给TA打赏
共{{data.count}}人
人已打赏
未分类

Node.js - 如何从一个数组中获取值?

2022-9-7 20:51:06

未分类

当在Bookdown中提供自定义模板时,标题和作者没有呈现。

2022-9-7 20:51:08

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索