Переименование файлов в Python3 с помощью tkinter Listbox - PullRequest
0 голосов
/ 25 апреля 2018


Я хочу переименовать все файлы в каталоге с помощью списка tkinter.

Застрял в этой точке:

files_list = os.listdir(root.foldername)
print(files_list)

дает мне

['1.mp4', '10.mp4', '2.mp4', '3.mp4', '4.mp4', '5.mp4', '6.mp4', '7.mp4', '8.mp4', '9.mp4']

values = [listbox.get(idx) for idx in listbox.curselection()]<br>

И

inlist = (', '.join(values))<br>
print(inlist)

дает мне

Lost - 1x01 - Pilot(1), Lost - 1x02 - Pilot(2), Lost - 1x03 - Tabula Rasa, Lost - 1x04 - Walkabout, Lost - 1x05 - White Rabbit, Lost - 1x06 - House Of The Rising Sun, Lost - 1x07 - The Moth, Lost - 1x08 - Confidence Man, Lost - 1x09 - Solitary, Lost - 1x10 - Raised By Another

Сейчас я ищу решение использовать os.rename для переименования файлов с 1.mp4 до 10.mp4. Кроме того, Python по какой-либо причине не имеет встроенного способа естественной сортировки, поэтому он сортирует 1.mp4, а затем 10.mp4.

Заранее большое спасибо.

1 Ответ

0 голосов
/ 26 апреля 2018

Для естественной сортировки взгляните на Сортировка буквенно-цифровых строк в Python .

Затем переберите все файлы и переименуйте их, например.

for i in range(len(files_list)):
    old_file_name = files_list[i]
    new_file_name = values[i] + '.mp4'
    os.rename(old_file_name, new_file_name)

Для получения справки по работе с путевыми именами см. os.path.

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