基本信息
源码名称:Python编码生成系统
源码大小:33.79M
文件格式:.rar
开发语言:Python
更新时间:2021-07-16
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 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()