实例介绍
【实例简介】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()
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论