0
嗨,我试图从(test.jpeg,test1.jpeg,test2.jpeg等...)(People-000,People-001,People-002等等......)在python中重新命名文件
但我还没有找到一个很好的方法在网上任何地方做到这一点。 我有点新来python,但如果我想通了这将是非常有用的。
嗨,我试图从(test.jpeg,test1.jpeg,test2.jpeg等...)(People-000,People-001,People-002等等......)在python中重新命名文件
但我还没有找到一个很好的方法在网上任何地方做到这一点。 我有点新来python,但如果我想通了这将是非常有用的。
如果你不介意的新旧名称的对应关系:
:import os
_src = "/path/to/directory/"
_ext = ".jpeg"
for i,filename in enumerate(os.listdir(_src)):
if filename.endswith(_ext):
os.rename(filename, _src+'People-' + str(i).zfill(3)+_ext)
但如果它是结束旧的和新的文件名的数量对应,您可以使用正则表达式是非常重要的
import re
import os
_src = "/path/to/directory/"
_ext = ".jpeg"
endsWithNumber = re.compile(r'(\d+)'+(re.escape(_ext))+'$')
for filename in os.listdir(_src):
m = endsWithNumber.search(filename)
if m:
os.rename(filename, _src+'People-' + str(m.group(1)).zfill(3)+_ext)
else:
os.rename(filename, _src+'People-' + str(0).zfill(3)+_ext)
使用正则表达式而不是字符串索引的优点是,文件名长度无关紧要。
谢谢,这是我实际可以理解的序列编号的第一个版本。 – Asori12
https://stackoverflow.com/questions/2759067/rename-files-in-python 即使用os.rename(src,dst) – anugrah
你有什么试过?显示代码。对于绝大多数问题,如果你没有包含显示你所尝试的代码,那么你的问题是不完整的,需要更多的工作。 – Jacobr365
我相信这里已经有了答案。检查下面: –
Ankit