我是Python的初学者,我正在尝试使用该语言在名为Modo的程序中创建脚本。
我正在尝试创建一个脚本,该脚本复制带有后缀编号的项目,并将新重复项目的后缀加1。
所以例如;复制'item_01',它将创建'item_01(2)',然后将'item_01(2)'重命名为'item_02'。
我很难找到如何让Python取上一个项目名称的'_01'部分,然后加1并使用它的总和作为新项目名称的后缀。
此外,这是我在这个伟大网站上的第一个问题,所以如果需要更多信息,请告诉我。
答案 0 :(得分:1)
我将您的问题解释为"我有一个以数字序列结尾的字符串,例如"item_02"
。我希望得到一个与原始字符串形式相同的字符串,但数字加1,例如re.sub
。"
您可以使用>>> import re
>>>
>>> s = "item_01"
>>> result = re.sub(
... r"\d+$", #find all digits at the end of the string,
... lambda m: str( #replacing them with a string
... int(m.group())+1 #equal to one plus the original value,
... ).zfill(len(m.group())), #with at least as much padding as the original value.
... s
... )
>>>
>>> print(result)
item_02
将数字序列替换为新的数字序列:
result = re.sub(r"\d+$", lambda m: str(int(m.group())+1).zfill(len(m.group())), s)
在一行中,那将是
>>> re.sub(r"\d+$", lambda m: str(int(m.group())+1).zfill(len(m.group())), "item_99")
'item_100'
请注意,如果原始值为9,则结果字符串可能比原始字符串长:
>>> re.sub(r"\d+$", lambda m: str(int(m.group())+1).zfill(len(m.group())), "item_23_42")
'item_23_43'
它只会增加字符串最末端的数字序列,而不是任何中间序列。
>>> re.sub(r"\d+$", lambda m: str(int(m.group())+1).zfill(len(m.group())), "item_foobar")
'item_foobar'
如果字符串没有后缀数字序列,它将只返回未改变的原始值。
id myID = message["myID"];
if ([myID isKindOfClass:[NSString class]]) { ... }
else { ... }
答案 1 :(得分:0)
Getting the name out of a variable is not something you do in Python
你想在这里实现,阅读你所写的内容,
我尝试制作一个脚本,该脚本复制了一个带有后缀编号的项目,并将新复制项目的后缀加1。
所以例如;复制' item_01',它将创建' item_01(2)',然后重命名' item_01(2)'到' item_02'。
会更方便,例如下面的内容:
some_var = 1
some_other_var = some_var + 1
你可以有一个函数做"我在我收到的参数中加一个,然后返回值" !
def add_one(var):
return (var + 1)
some_var = 1
some_other_var = add_one(some_var)
如果你想"名字"你的变量,并且能够改变它们,即使我不明白你为什么要这样做,我相信你要找的是dict。
我让你看一下这个词典的参考文献。 :)