记录一下如何使用python生成二维码 并简单练习命令行参数供初学者参考

主代码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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/269700.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Error: Cannot find module ‘E:\Workspace_zwf\mall\build\webpack.dev.conf.js‘

执行:npm run dev E:\Workspace_zwf\zengwenfeng-master>npm run dev> mall-app-web1.0.0 dev E:\Workspace_zwf\zengwenfeng-master > webpack-dev-server --inline --progress --config build/webpack.dev.conf.jsinternal/modules/cjs/loader.js:983thr…

生产派工自动化:MES系统的关键作用

随着制造业的数字化转型和智能化发展,生产派工自动化成为了提高生产效率、降低成本,并实现优质产品生产的关键要素之一。制造执行系统(MES)在派工自动化中发挥着重要作用,通过实时数据采集和智能调度,优化生…

Armv8/Armv9从入门到精通-课程介绍

通知,Arm二期,咱们也有大合集PDF了,共计1587页,还未完成,后续持续更新和优化中。为了方便大家阅读、探讨、做笔记,特意整了此合集PPT,为了增加标签目录,还特意开了福兮阅读器会员。 …

MTK Android P Sensor架构(一)

需求场景: 本来如果只是给传感器写个驱动并提供能读取温湿度数据的节点,是一件比较轻松的事情,但是最近上层应用的同事要求我们按照安卓标准的流程来,这样他们就能通过注册一个服务直接读取传感器事件数据了。这样做的好处就是第…

案例041:基于微信小程序的私家车位共享系统

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

C语言—每日选择题—Day46

第一题 1. 下列程序段的输出结果是&#xff08;&#xff09; #include <stdio.h> int main() {int x 1,a 0,b 0;switch(x) {case 0: b;case 1: a;case 2: a;b;}printf("a%d,b%d\n", a, b);return 0; } A&#xff1a;a2,b1 B&#xff1a;a1,b1 C&#xf…

【C语言程序设计】循环结构程序设计

目录 前言 一、程序设计第一题 二、程序设计第二题 三、程序设计第三题 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da…

Unity 射线检测(Raycast)检测图层(LayerMask)的设置

目录 主要内容 拓展&#xff1a; 主要内容 Raycast函数有很多重载(函数的重载根据函数的参数来决定) 这里只涉及这个重载,其余重载可以很方便得在Visual Studio中看源码获取&#xff1b; public static bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hit…

设计模式—观察者模式

观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;使得当一个对象的状态发生变化时&#xff0c;所有依赖于它的对象都会得到通知并自动更新。 在观察者模式中&#xff0c;有两个核心角色&#xf…

Kubernetes(k8s)集群部署----->超详细

Kubernetes&#xff08;k8s&#xff09;集群部署-----&#xff1e;超详细 一、资源准备二、安装准备2.1 主机环境设置2.1.1 关闭操作系统防火墙、selinux2.1.2 关闭swap交换分区2.1.3 允许iptables检测桥接流量&#xff08;可选&#xff09; 2.2 安装Docker环境2.3 安装Kubeadm…

云基础软件深化合作,云轴科技ZStack与麒麟软件战略签约

12月8日&#xff0c;云轴科技ZStack与麒麟软件战略合作签约仪式在北京举行&#xff0c;双方对过往紧密合作表达了充分肯定&#xff0c;并就进一步联合技术创新、打造重点行业标杆和持续赋能客户达成高度共识。云轴科技创始人&CEO张鑫和麒麟软件高级副总经理谢文征共同见证双…

【EventBus】EventBus源码浅析

二、EventBus源码解析 目录 1、EventBus的构造方法2、订阅者注册 2.1 订阅者方法的查找过程2.2 订阅者的注册过程1. subscriptionsByEventType 映射&#xff1a;2. typesBySubscriber 映射&#xff1a;2.3 总结订阅者的注册过程 3、事件的发送 3.1 使用Post提交事件3.2 使用p…