【发布时间】:2021-11-02 07:24:45
【问题描述】:
目标是为重复字符串创建一个命名系统。
如果名称是 hotdog.jpg 并且我想复制一个并且下一个字符串是 hotdog_1.jpg。等等。但我面临的问题是,如果你复制 hotdog_1.jpg,我们会得到 hotdog_1_1.jpg。我试图检查字符串是否以“(下划线)+数字”结尾。但问题是字符串也可能有“(下划线)+数字+数字”。比如 hotdog_13.jpg。
有什么好的方法可以实现吗?
for current_image_name in self.images_names:
extension = os.path.splitext(current_image_name)[1]
current_image_name = os.path.splitext(current_image_name)[0]
if current_image_name[-2] == '_' and current_image_name[-1].isdigit():
self.images_names.insert(self.current_index + 1, current_image_name[:-1] + str(int(self.images_names[self.current_index][-1]) + 1) + extension)
name_change = True
if not name_change:
self.images_names.insert(self.current_index + 1, self.images_names[self.current_index] + '_1')
【问题讨论】:
-
稍微澄清一下,当文件名为 hotdog_1.jpg 时,您期望会发生什么?您是否期待名称冲突(已存在的文件)?
-
是的,没错。所以所有的文件名都存储在一个列表中。因此,如果我想复制列表中的当前字符串,列表中的下一项将是 hotdog_1.jpg,如果您复制它,我们将得到 hotdog_2.jpg 等等...