Python 多变量文件命名约定
嗨!我正在尝试将文件夹中所有图片的文件名更改为新的命名模式,以便我使用的程序能够识别它。当前的命名模式是“cam1#####.png”,其中###是序列中的数字。例如,第一张照片命名为“cam1_000.png” 我想了解的是以下命名模式:“cam1_r#############rgb.png”,其中“r#####”和“######”每次增加一个。例如,文件夹中的第一张图像“cam1_000.png”将重命名为“cam1_r000_0000_rgb.png”,第100张照片将从“cam1_099.png”重命名为“cam1_r099_0099_rgb.png” 我觉得这应该非常简单,但我在格式方面遇到了问题:/以下是我目前的情况:Python 多变量文件命名约定,python,string,python-3.x,filenames,Python,String,Python 3.x,Filenames,嗨!我正在尝试将文件夹中所有图片的文件名更改为新的命名模式,以便我使用的程序能够识别它。当前的命名模式是“cam1#####.png”,其中###是序列中的数字。例如,第一张照片命名为“cam1_000.png” 我想了解的是以下命名模式:“cam1_r#############rgb.png”,其中“r#####”和“######”每次增加一个。例如,文件夹中的第一张图像“cam1_000.png”将重命名为“cam1_r000_0000_rgb.png”,第100张照片将从“cam1_099
files = os.listdir(".")
i = 1
for file in files:
os.rename(file, file + 'r_'+i+'_'+i+'.png')
i = i+1
提前感谢您的建议/重定向!我建议在此处使用。您可以创建一个表示要使用的模式的字符串,然后使用要替换为参数的值调用该字符串的format()
方法
在这种情况下,我想你可以使用
"{0}r_{1:03d}_{1:04d}.{2}".format(base_filename, i, extension)
在格式代码{1:03d}
中,1
告诉它使用哪个参数format()
(零索引,因此1
表示第二个参数i
),冒号后面的部分告诉它如何格式化参数:0
表示包含前导零,3
表示填充三个字符,d
表示将其格式化为整数
请注意,您首先需要将文件名分为基本文件名(例如,cam1_000
)和扩展文件名(png
)。您可以尝试使用以使输出文件名更易于定义。您还可以使用提供必要的零填充
此外,您还应将其用作计数器
最后,使用从文件名中拆分名称和扩展名是很有用的
我是哑巴,所以这就是我得到的…希望,这将帮助其他任何试图这样做的人:D
files = os.listdir(".")
i = 0
for file in files:
alpha="%03d" % i
beta="%04d" % i
os.rename(file, 'cam1_r'+alpha+'_'+beta+'_rgb'+'.png')
i = i+1
@谢谢你的提醒!标记你的;)
files = os.listdir(".")
i = 0
for file in files:
alpha="%03d" % i
beta="%04d" % i
os.rename(file, 'cam1_r'+alpha+'_'+beta+'_rgb'+'.png')
i = i+1