使用Python 3,我试图编写一个代码,该代码将生成11位代码并将其添加到文本文件中。如果文本文件已经具有该代码,则应生成一个新的唯一代码。我陷入了循环逻辑,每当我调用Create函数时,都应在文件中再次检查新生成的ID,直到创建了唯一ID,然后将其添加到文本文件中。
f2=open("abc.txt","r")
def Create():
global ID
Var1 = str((random.randint(0,9)))
ID= Userip+Userip+Userip+Var1+Userip
print("New ID code : ", ID)
if ID in f2.read():
print("generate new ID code")
while i in range(11):
print("Counter: ",i)
Create()
print("Changed ID is: ", ID)
i=i+1
else:
f=open("abc.txt", "a")
f.write("Adding new ID %s\r\n" % ID)
f.close()
答案 0 :(得分:0)
f2 = open(“ abc.txt”,“ r”)
1-此处的缩进是错误的:
def Create():
global ID
Var1 = str((random.randint(0,9)))
ID= Userip+Userip+Userip+Var1+Userip
print("New ID code : ", ID)
应该是:
def Create():
global ID
Var1 = str((random.randint(0,9)))
ID= Userip+Userip+Userip+Var1+Userip
print("New ID code : ", ID)
2-您无需遍历该函数并调用11次即可仅生成一个ID。您只需调用一次即可,并增加随机数生成范围以匹配所需的位数(在您的情况下为10 10到10 11)。
您的脚本将是:
随机导入
f2=open("abc.txt","w+")
def Create():
global ID
Var1 = str((random.randint(10**10,10**11)))
ID= Var1
print("New ID code : ", ID)
return ID
ID = ''
f2=open("abc.txt","r")
while True:
if ID in f2.read():
print("generate new ID code")
Create()
else:
f=open("abc.txt", "a")
f.write("Adding new ID %s\r\n" % ID)
f.close()
最后,您必须告诉脚本何时停止。一定数量的唯一生成的ID之后。