主代码main.py 后面是演示效果图:
import argparse import sysimport qrcode import os qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=10,border=4, ) fileList=[] fileName=[]parser=argparse.ArgumentParser(description='生成二维码') parser.add_argument('-d', '--data', type=str,help='要生成的文本串') parser.add_argument('-f', '--fileName', type=str, default="testdata.txt",help='输入文本文件名') parser.add_argument('-s', '--saveDirectory', type=str,default="output",help='输入文本文件名') args = parser.parse_args() # print("测试数据",args.data)if not args.saveDirectory:os.makedirs(args.ssaveDirectory) elif not os.path.exists("output"):os.makedirs("output") # print("文件名",args.fileName) if (args.fileName=="testdata.txt") and (args.data==None) and (not os.path.exists("testdata.txt")):with open("testdata.txt",'w') as f:f.write("test\n")if args.data:qr.clear()qr.add_data(args.data)qr.make(fit=True)img = qr.make_image()if not args.saveDirectory:img.save("./output/" + args.data + ".png")else:img.save("./" +args.saveDirectory+"/"+ args.data + ".png")elif args.fileName and args.data==None:with open(args.fileName,'r') as f:fileList=f.readlines()filenamList=[f.strip() for f in fileList]print(filenamList)if len(filenamList)==0:print("没有数据可读取")sys.exit(0)for i in filenamList:print("正在处理文件中数据",i)# 添加数据前需要清空原有的数据qr.clear()qr.add_data(str(i))qr.make(fit=True)img = qr.make_image()img.save("./"+args.saveDirectory+"/"+str(i)+".png")print("处理完成。") else:print("语法错误,请在命令行使用使用下面语法")print("qr.exe --data 要处理的数据 ----saveDirectory 要保存的目录")print("qr.exe --file 包含数据的文件名 ----saveDirectory 要保存的目录")
演示效果: 在该文件所在命令行 或者打开命令终端 输入命令
"使用默认方式 默认输出到output文件夹 数据在testdata.txt,输入命令
python main.py
用字符串'test'生成二维码,输入命令:
python main.py -d test
#用文本文件test.txt文件中数据生成二维码 ,输入命令:
python main.py -f test.txt