顺序生成迭代的文件名

现在存在这么一种需求:
当触发某个条件时,需要新建一个节点/项目,类似于在一个文件夹里创建一个文件,该文件需要满足顺序,比如:文件a(f1)、文件a(f2)、文件b(f3)…。
这些文件可以重命名,可以改成任意的,更改后的名字例如:文件a(f1)、2、文件b(f3)…。
现在如果新增一个文件,需要按照顺序添加进去,这里发现有f1,有f3,没有f2,因此新文件的名字是:文件x(f2).
python代码如下:

def get_material_next_name(name):
    """
    用于新建文件时,给定一个新名字
    :param name: 给的名字,例如:Ge
    :return: 例如:Ge(mat1)
    """
    name2 = name
    path = self.current_material_directory
    file_list = FileList(path).get_all_files()
    set_material = set()
    for file in file_list:
        temp = extract_mat_number(get_name_without_extension(file))
        if temp:
            set_material.add(int(temp))
    name = name2 + "(mat1)"
    for i in range(1, len(set_material) + 2):
        if i not in set_material:
            name = name2 + "(mat" + str(i) + ")"
            break
    return name
# 材料新增命名校验
def extract_mat_number(s):
    pattern = r'\(mat(\d+)\)$'
    match = re.search(pattern, s)
    if match:
        return match.group(1)  # 返回捕获的数字部分
    else:
        return None  # 如果不匹配,返回 None
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值