一 代码
# 条形码EAN13批量生成函数
def scode7(schoice):
mainid = inputbox("\033[1;32m 请输入EN13的国家代码(3位) :\33[0m", 3, 3) # 输入3位国家代码
# while int(mainid) < 1 or len(mainid) != 3: # 验证输入是否为3位数字(转为整数后小于1和长度不等于3,重新输入)
# mainid = inputbox("\033[1;32m 请输入EAN13的国家代码(3位)::\33[0m", 1, 0)
compid = inputbox("\033[1;32m 请输入EAN13的企业代码(4位):\33[0m", 3, 4) # 输入4位企业代码
# while int(compid) < 1 or len(compid) != 4: # 验证输入是否为4位数字
# compid = inputbox("\033[1;32m 请输入EAN13的企业代码(4位):\33[0m", 1, 0)
incount = inputbox("\033[1;32m 请输入要生成的条形码数量:\33[0m", 1, 0) # 输入要生成的条形码数量
while int(incount) == 0: # 输入信息转为整数后等于0,重新输入
incount = inputbox("\033[1;32m 请输入要生成的条形码数量:\33[0m", 1, 0)
mkdir("barcode") # 判断保存条形码的文件夹是否存在,不存在,则创建该文件夹
for j in range(int(incount)): # 批量生成条形码
strone = '' # 清空存储单条条形码的变量
for i in range(5): # 生成条形码的6位(除国家代码、企业代码和校验位之外的6位)数字
strone = strone + str(random.choice(number))
barcode = mainid + compid + strone # 把国家代码、企业代码和新生成的随机码进行组合
# 计算条形码的校验位
evensum = int(barcode[1]) + int(barcode[3]) + int(barcode[5]) + int(barcode[7]) + int(barcode[9]) + int(
barcode[11]) # 偶数位
oddsum = int(barcode[0]) + int(barcode[2]) + int(barcode[4]) + int(barcode[6]) + int(barcode[8]) + int(
barcode[10])
# checkbit=int(10-(evensum *3 + oddsum)%10)
checkbit = int((10 - (evensum * 3 + oddsum) % 10) % 10)
barcode = barcode + str(checkbit) # 组成完整的EAN13条形码的13位数字
print(barcode)
encoder = EAN13Encoder(barcode) # 调用EAN13Encoder生成条形码
encoder.save("barcode\\" + barcode + ".png") # 保存条形码信息图片到文件
二 运行