python+barcode快速生成条形码(电商测试小工具)

news2024/9/23 23:30:16

背景

需要测试自助收银机,每次都要在线生成条码,而且生成次数还有限制

需求

满足自定义条形码,可以生成条形码图片

方案

python        3.8以上

barcode        1.0.4

python-barcode       0.15.1      

代码

用于生成Code128条形码并将其保存为图片文件

        从barcode模块中导入了Code128类和ImageWriter类。这些类用于生成Code128条形码和将其保存为图片文件

def generate_barcode(code, output_dir):
    """
    生成Code128条形码并保存为图片
    :param code: 条形码数据
    """
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    my_code = Code128(code, writer=ImageWriter())
    print(my_code)
    my_code.save(f"{output_dir}/{barcode_name}_barcode_{barcode_data}.png")

        接下来定义了一个函数generate_barcode,它接受两个参数:code表示条形码的数据,output_dir表示输出目录的路径。在函数内部,首先检查输出目录是否存在,如果不存在则创建该目录。然后使用Code128类创建一个条形码对象,并使用ImageWriter类将其保存为PNG格式的图片文件。最后,打印出生成的条形码对象。

在主程序部分,首先通过用户输入获取商品名称和条形码数据。然后定义了输出目录的路径为barcodes。最后调用generate_barcode函数,传入条形码数据和输出目录路径,生成条形码并保存为PNG文件。

源码

import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(BASE_DIR)
sys.path.insert(0, BASE_DIR)
from barcode import Code128
from barcode.writer import ImageWriter


def generate_barcode(code, output_dir):
    """
    生成Code128条形码并保存为图片
    :param code: 条形码数据
    """
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    my_code = Code128(code, writer=ImageWriter())
    print(my_code)
    my_code.save(f"{output_dir}/{barcode_name}_barcode_{barcode_data}.png")



# 示例数据
barcode_name = input("请输入商品名称:")
barcode_data = input("请输入商品条形码:")

# 输出目录
output_dir = "barcodes"

# 生成条形码并保存为PNG文件
generate_barcode(barcode_data, f"{BASE_DIR}/bar/{output_dir}")

运行结果

这个需要在黑窗口下面运行

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WINDOWS配置IIS

1.安装IIS 1.1.打开启用Windows功能 打开“控制面板” > “程序和功能” > “启用或关闭 Windows 功能”。 1.2.启用IIS功能 打开“控制面板” > “程序和功能” > “启用或关闭 Windows 功能”。 勾选“Internet Information Services”,然后点击“确定…

学习中遇到的问题

1.UFUNCTION() 不是所有函数都能加UFUNCTION()修饰,涉及UE反射机制。 2.初始化用{} 初始化列表 3.创建C文件时修改了路径 这时.cpp文件会报错,只需删掉前面多余路径即可 4.函数的移除 1.虚幻5.1 UUserWidget不再包含OnLevelRemovedFromWorld() 转而使用…

ai续写软件哪个好?盘点3款经典好用的!

随着科技的不断发展,AI续写软件逐渐成为了许多内容创作者、学生、研究人员等的得力助手。这类软件能够通过机器学习和自然语言处理技术,为用户提供高质量的文本续写服务。但市场上众多的AI续写软件让人眼花缭乱,那么,究竟哪款AI续…

Nftables漏洞原理分析(CVE-2022-32250)

前言 在nftales中存在着集合(sets),用于存储唯一值的集合。sets 提供了高效地检查一个元素是否存在于集合中的机制,它可以用于各种网络过滤和转发规则。 而CVE-2022-32250漏洞则是由于nftables在处理set时存在uaf的漏洞。 环境搭建 ubuntu20 QEMU-4…

透明加密软件选哪个好?选择时一定要注意以下三点

透明加密软件哪个好? 这是许多企事业单位在面临数据防泄漏问题时经常思考的问题。随着信息技术的发展,企业的数据安全变得越来越重要。透明加密技术作为一种有效的数据保护手段,被越来越多的企业所采用。然而,市场上的透明加密软…

项目实战 | 如何恰当的处理 Vue 路由权限

前言 哈喽,小伙伴你好,我是 嘟老板。最近接了一个成本千万级的前端项目运维工作,本着 知己知彼 的态度,我将整个前端的大致设计思路过了一遍。不看不知道,一看…吓一跳。光是 路由权限 这块儿的设计,都让我…

Q1保健品线上市场分析(一):护眼需求不减,叶黄素软糖卖爆!

如今网络时代的高速发展,用眼过度逐渐成为国人的常态,无论是儿童还是青少年、成年人、老年人,都可能面临眼部健康的问题。 在这样的大环境下,预防大于治疗的概念不断深入日常生活,进而推动了护眼产品市场的高速发展&a…

1W 3KVDC 隔离 稳压单输出 DC/DC 电源模块 ——TPV-SAR 系列

TPV-SAR系列产品是专门针对PCB上分布式电源系统中需要与输入电源隔离且输出精度要求较高的电源应用场合而设计。该产品适用于;1)输入电源的电压变化≤5%;2)输入输出之前要求隔离电压≥3000VDC;3)对输出电压…

python学习笔记-01

python 在学习之前要了解的事项: 1.python缩进语法要求较为严格 2.是解释型语言 3.python2版本和python3版本不兼容 本系列笔记全部基于python3 1.hello world 安装好python之后,可以直接打开python,也可以通过cmd进入python。 print(&qu…

【如此简单!数据库入门系列】之存储设备简介

文章目录 1 前言2 存储设备分类3 主存层次结构4 磁盘结构5 RAID6 总结7 系列文章 1 前言 没有存储,就没有数据! 如果说ER模型和数据库规范化是数据库概念模式的技术和方法,那么存储设备就是数据库物理模式的基础。 物理存储设备包含哪些类型…

河南大学大礼堂火灾事故引发安防监控对智能分析技术应用的思考

一、方案背景 2024年5月2日,在修缮施工期间的河南大学河南留学欧美预备学校旧址大礼堂发生火情。现场航拍画面显示,大礼堂经过火灾,房顶已经基本坍塌,被火烧过的建筑呈焦黑状。 公开资料显示,大礼堂属河南留学欧美预…

小程序激励广告视频多次回调问题

1.问题 2. 激励视频使用及解决方案 官方文档 let videoAd null; // 在页面中定义激励视频广告 Page({/*** 页面的初始数据*/data: {},/*** 生命周期函数--监听页面加载*/onLoad(options) {let that this;// 创建激励视频广告实例if (wx.createRewardedVideoAd) {videoAd w…

Docker镜像仓库-在私有镜像仓库推送或拉取镜像

推送镜像到私有仓库,要先让镜像打包 前缀为私有仓库地址的名字: 这里也是打包成功了:docker images 可以查看到 push推送镜像到镜像仓库: docker push 192.168.221.129:8080/nginx:1.0推送成功后在主机访问镜像仓库可以看到 这里已经有个镜像了。而且可…

从线索到成交:HubSpot全渠道销售流程的精准打磨

在当今数字化时代,企业面临着越来越复杂的市场环境和激烈的竞争压力。在这样的背景下,如何利用科技手段提升营销和销售效率,拓展客户获客渠道,成为了企业发展的关键之道。作为HubSpot合作伙伴,我们深谙全渠道营销与销售…

屏幕距离识别加语音提醒

效果 QQ录屏20240406131651 语音播放 import pygame pygame.mixer.init() #初始化 pygame.mixer.music.load(r"7359.wav") #文件位置 pygame.mixer.music.play(1) #播放语音 while pygame.mixer.music.get_busy(): # 在音频播放为完成之前不退出程序pass 完…

im即时通讯源码/仿微信app源码+php即时通讯源码带红包+客服+禁言等系统php+uniapp开发

即时通讯(IM)系统是现代互联网应用中不可或缺的一部分,它允许用户进行实时的文本、语音、视频交流。随着技术的发展,IM系统的功能越来越丰富,如红包、客服、禁言等。本文将探讨如何使用PHP语言开发一个功能完备的即时通讯系统,包括…

git commit 提交报错pre-commit hook failed (add --no-verify to bypass) 解决方法,亲测有效

问题截图 今天在执行 git commit 命令时报错:pre-commit hook failed (add --no-verify to bypass) 解决 参考文章:git commit报错:pre-commit hook failed的解决方法 具体原理什么的就不解释了,可以看看上面的参考文章 解决方…

《Fundamentals of Power Electronics》——脉宽调制器建模

下图给出了一个简单脉宽调制器电路的原理图。 脉宽调制器电路产生一个用于指令转换器功率管导通和关断的逻辑信号δ(t)。该逻辑信号δ(t)是周期性的,其频率为fs,占空比为d(t)。脉宽调制器的输入是一个模拟控制信号vc(t)。脉宽调制器的作用是产生一个与模…

开源!自制一个桌面宠物(STM32CUBEMX HAL库 PWM波 小项目)

原视频:好,自制一个桌面宠物!_哔哩哔哩_bilibili 基础所需:基础电路认识,C语言,STM32开发,STM32CUBEIDE或CUBEMX和Keil使用(重要),一点点艺术细胞、一点点耐…

前端之深拷贝

前提: 就是在实际开发中,我有一个编辑的弹窗,可以查看和编辑,因为弹窗里面是一个步骤条,点击下一步就要向对应的接口发送请求,考虑到就比如我点击下一步,此次表箱信息其实不需要修改&#xff0…