基本信息
源码名称:Python编码生成系统
源码大小:33.79M
文件格式:.rar
开发语言:Python
更新时间:2021-07-16
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
Python编码生成系统
Python编码生成系统
def scode6(schoice): default_dir = r"c:\ABDscode5.txt" # 设置默认打开的文件名称 # 按默认的文件名称打开文件选择对话框,用于打开已经存在的防伪码文件 file_path = tkinter.filedialog.askopenfilename(title=u"请选择已经生成的防伪码文件",initialdir=(os.path.expanduser(default_dir))) codelist = openfile(file_path) # 读取从文件选择对话框选中的文件 codelist = codelist.split("\n") # 把读取的信息内容添加回车,以便列输出显示 codelist.remove("") # 删除列表中的空行 strset = codelist[0] # 读取一行数据,以便获取原验证码的字母标志信息 remove_digits = strset.maketrans("", "", digits) # 用maketrans方法创建删除数字的字符映射转换表 res_letter = strset.translate(remove_digits) # 根据字符映射转换表删除该条防伪码中的数字,获取字母标识信息 nres_letter = list(res_letter) # 把信息用列表变量nres_letter存储 strpro = nres_letter[0] # 从列表变量中取得第一个字母,即区域分析码 strtype = nres_letter[1] # 从列表变量中取得第二个字母,即色彩分析码 strclass = nres_letter[2] # 从列表变量中取得第三个字母,即版次分析码 # 去除信息中的括号和引号 nres_letter = strpro.replace(''''','').replace(''''', '') strtype.replace( ''''','').replace(''''', '') strclass.replace(''''','').replace(''''', '') print("sssssssssss",nres_letter) card = set(codelist) # 将原有防伪码放到集合变量card中 # 利用tkinter的messagebox提示用户之前生成的防伪码数量 tkinter.messagebox.showinfo("提示", "之前的防伪码共计:" str(len(card))) root.withdraw() # 关闭提示信息框 incount = inputbox("请输入补充验证码生成的数量:", 1, 0) # 让用户输入新补充生成的防伪码数量 # 最大值按输入生成数量的2倍数量生成新防伪码,防止新生成防伪码与原有防伪码重复造成新生成的防伪码数量不够, for j in range(int(incount) * 2): randfir = random.sample(number, 3) # 随机产生3位不重复的数字 randsec = sorted(randfir) #对产生的数字排序 addcount = len(card) # 记录集合中防伪码的总数量 strone = "" # 清空存储单条防伪码的变量strone for i in range(9): # 生成9位的数字防伪码 strone = strone random.choice(number) # 将三个字母按randsec变量中存储的位置值添加到数字防伪码中,并放到sim变量中 sim = str(strone[0:int(randsec[0])]) strpro str( strone[int(randsec[0]):int(randsec[1])]) strtype str( strone[int(randsec[1]):int(randsec[2])]) strclass str(strone[int(randsec[2]):9]) "\n" card.add(sim) # 添加新生成的防伪码到集合 # 如果添加到集合,证明生成的防伪码与原有的防伪码没有产生重复 if len(card) > addcount: randstr.append(sim) # 添加新生成的防伪码到新防伪码列表 addcount = len(card) # 记录最添加新生成防伪码集合的防伪码数量 if len(randstr) >= int(incount): # 如果新防伪码列表中的防伪码数量达到输入的防伪码数量 print(len(randstr)) # 输出已生成防伪码的数量 break # 退出循环 # 调用函数wfile()函数,实现生成的防伪码屏幕输出和文件输出 wfile(randstr, nres_letter "ncode" str(choice) ".txt", nres_letter, "生成后补防伪码共计:","codeadd") # tkinter.messagebox.showinfo("提示", "已生成补充防伪码共:" str(len(randstr))) # 提示 # root.withdraw()