我有一个文件夹,里面文件的命名方式是 数字(不一定连续),加+号(可能有可能没有),大致是这样的:
001.png
002.png
002+.png
003.png
003+.png
004.png
005.png
005+.png
现在我希望按照数字顺序重新命名文件,规则是带 + 号的要在不带 + 号的之后,即:
001.png --> 001.png
002.png --> 002.png
002+.png --> 003.png
003.png --> 004.png
003+.png --> 005.png
004.png --> 006.png
005.png --> 007.png
005+.png --> 008.png
我是用 os.walk() 读取的文件,然后计划用 enumerate 方法通过计数修改文件名,但是Python读取文件的时候,总是把带+号的文件放在不带+号的文件前面,比如这样:
001.png
002+.png
002.png
003+.png
003.png
004.png
005+.png
005.png
请问各位有什么好办法能实现我的要求?
先遍历改名字 把带+号的改成001.png+ 这样就会排在001.png后面了 然后再用你的方法改名字
把 002+.png 改成 002.png
把 002.png 改成 002+.png
文件名放到列表中,对列表中的文件名去掉扩展名重新排序
li = [
"001.png",
"002+.png",
"002.png",
"003+.png",
"003.png",
"004+.png",
"004.png"
]
li.sort(key=lambda x: x.split(".")[0])
print(li)