所以我在Jython SikuliX中编写一个程序,通过三个字母输入(MAG)自动制作标签,然后在末尾添加一个数字(1),然后为每个标签增加数字+1(MAG1 - MAG2 - MAG3等。)
然而,这里的诀窍是我需要字母和数字的组合,总长度为6个字符(So MAG001或MAG010或MAG100)。
我已经得到了数字连接但是我遇到了任何数字超过100的奇怪问题。从标签9到标签10及以上工作完美(MAG009 - MAG010 - MAG011等)然而当我到MAG99然后去MAG100我收到一个错误:
[error] --- Traceback --- error source first line: module ( function )
statement 26: main ( name_change ) name = name
[error] --- Traceback --- end --------------
我不知道为什么会这样......代码在下面。
import time
name1 = str(input("First three letters of product name"))
labels = int(input("At what number do you want the labels to stop?"))
a = int(input("What number should the labels start at?"))
e = "00"
d = "0"
find("1496686601617.png")
doubleClick("1496686607803.png")
def name_change(name1, a):
a = str(a)
c = len("%s%s" % (name1, a))
if c == 4:
name = ("%s%s" % (name1, e))
if c == 5:
name = ("%s%s" % (name1, d))
if c == 6:
name = name
a = int(a)
return name
def label_make(name, a):
click("1496688531026.png")
type("0000")
rightClick("1496688447045.png")
click("Select_All.png")
type("%s%r" % (name, a))
click("1496686753618.png")
click("Save As-1.png")
time.sleep(1)
type("%s%r" % (name, a))
click("1496687258684.png")
a = a + 1
return a
while labels >= a:
name = name_change(name1, a)
a = label_make(name, a)
非常感谢任何帮助。
答案 0 :(得分:0)
没关系,我解决了自己的问题:
我回到了一个没有涉及函数的旧版本,并且如果它已经是6个字符长并且它可以正常工作,那么它就为name指定了变量。代码如下:
import time
name1 = str(input("First three letters of product name"))
labels = int(input("At what number do you want the labels to stop?"))
a = int(input("What number should the labels start at?"))
e = "00"
d = "0"
find("1496686601617.png")
doubleClick("1496686607803.png")
while labels >= a:
#a = str(a)
c = len("%s%s" % (name1, a))
if c == 4:
name = ("%s%s" % (name1, e))
if c == 5:
name = ("%s%s" % (name1, d))
if c == 6:
name = name1
#a = int(a)
click("1496688531026.png")
type("0000")
rightClick("1496688447045.png")
click("Select_All.png")
type("%s%r" % (name, a))
click("1496686753618.png")
click("Save As-1.png")
time.sleep(1)
type("%s%r" % (name, a))
click("1496687258684.png")
#a = int(a)
a = a + 1