记录一下如何使用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进行投诉反馈,一经查实,立即删除!