我不太了解Python,这就是我在这里发帖的原因。我目前有480个文件,其名称类似于" Slide1"," Slide2"," Slide3"等等...问题是必须更改所有名称,以便第一个文件将被调用" Slide121",第二个" Slide122",第三个" Slide123& #34;等。
目前,我有这段代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
a = 121
b = 121
for filename in os.listdir('.'):
if filename.startswith("Slide"):
os.rename(filename, "Slide"+str(a)+"a.png")
a += 1
for filename in os.listdir('.'):
if filename.startswith("Slide"):
os.rename(filename, "Slide"+str(b)+".png")
b += 1
这应该可行,避免错误"此名称已存在"。事实是,所有文件都有一个新名称,但前者" Slide1"文件现在是" Slide124",前者" Slide2"文件现在是" Slide85" ...什么都没有在它的初始位置。 你能以某种方式帮助我吗?
顺便说一下,我为我的英语道歉。感谢。
答案 0 :(得分:3)
实际上,你和simon的方法都会失败,因为系统无法将Slide1重命名为Slide121,因为已有Slide121。您应该从编号最高的幻灯片开始,如下所示:
import os
def main():
for suffix in range(480,0,-1):
os.rename("Slide%s.png" % suffix, "Slide%s.png" % (suffix + 120))
if __name__ == '__main__':
main()
答案 1 :(得分:1)
你可以使用类似下面的脚本。
如果脚本无法按预期运行,请确保备份幻灯片。
import os
import re
REGEX = re.compile("Slide([0-9]+).png")
for filename in os.listdir('.'):
match_ = re.match(REGEX, filename)
if match_:
slide_n = int(match_.group(1)) + 121
os.rename(filename, "Slide{}.png".format(slide_n))