将任意两位数字附加到用户输入代码并将其添加到文件中

时间:2019-03-07 10:32:26

标签: python-3.x

使用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()

1 个答案:

答案 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之后。