2015-02-26 3 views
0

Я хотел бы переименовать все файлы (имена файлов не имеют четкой картины) в именах файлов с последовательными номерами, например:переименовать все файлы в директории с последовательными номерами в Python

файлов в каталоге:

agh_uio78. JPG hhaq23klp.png mickey.tiff

в

001.jpg 002.png 003.tiff

Это даст мне результат без расширения:

import os 

FList = os.listdir(os.getcwd()) 
FListC = FList[1:] 

m = 0 
for i in FListC: 
    os.rename(i,str(m)) 
    m = m+1 

Результат:

ответ

1
import os 

FList = os.listdir(os.getcwd()) 
FListC = FList[1:] 

m = 0 
for i in FListC: 
    fileExtension = os.path.splitext(i)[1] 
    os.rename(i,str(m)+fileExtension) 
    m = m+1 

Вы забыли сохранить расширение файла.
Выше кода захватит расширение файла и объединит ваше имя файла с расширением

+0

Невозможно работать с файлами типа '* .tar.gz'. Кроме того, разве это не должно быть 'splitext (i) [1]'? –

+0

Удивительные работы. У меня есть дополнительный вопрос. Если я оставлю свой скрипт в каталоге, он также будет переименован. Есть ли способ разрешить пользователю выбирать каталог вместо «os.getcwd()»? – digit

+0

Вы можете даже сократить его до 'для m, i в перечислении (FListC):'. – Falko

Смежные вопросы