Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多变量文件命名约定_Python_String_Python 3.x_Filenames - Fatal编程技术网

Python 多变量文件命名约定

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

嗨!我正在尝试将文件夹中所有图片的文件名更改为新的命名模式,以便我使用的程序能够识别它。当前的命名模式是“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”

我觉得这应该非常简单,但我在格式方面遇到了问题:/以下是我目前的情况:

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