我想通过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>
和
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。
非常感谢你。
答案 0 :(得分:0)
对于自然分类,请查看Sorting alphanumeric strings in 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
。