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

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

  • 21
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值