сортировка папок в каталоге (комбинация букв и цифр) в python - PullRequest
0 голосов
/ 22 апреля 2020

Я хочу пересмотреть имена папок в каталоге и отсортировать их, я был бы признателен, если кто-то мог бы помочь мне с этим.

Например: у меня есть каталог, который включает 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])

1 Ответ

0 голосов
/ 22 апреля 2020

Из имени папки вам нужно 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...