记录一下如何使用python生成二维码 并简单练习命令行参数供初学者参考
2023-12-13 05:51:08
主代码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
文章来源:https://blog.csdn.net/pengg123h/article/details/134962112
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!