主代码main.py 后面是演示效果图:
import argparse import sys import 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