Python 3.x Python3通过tkinter列表框重命名文件

Python 3.x Python3通过tkinter列表框重命名文件,python-3.x,tkinter,listbox,Python 3.x,Tkinter,Listbox,我想通过tkinter listbox重命名目录中的所有文件 此时陷入困境: 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.curselect


我想通过tkinter listbox重命名目录中的所有文件

此时陷入困境:

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>
现在我正在寻找一种解决方案,使用os.rename将文件重命名为1.mp4到10.mp4。 此外,无论出于何种原因,Python都没有内置的自然排序方法,因此它先对1.mp4进行排序,然后再对10.mp4进行排序


提前非常感谢。

对于自然排序,请查看

然后遍历所有文件并重命名它们,例如

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

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