python使用python-barcode生成任意长度字符串的条形码(一维码)详细教程

使用python-barcode生成一维码

1.安装python包

pip install Pillow
pip install python-barcode

2.实例程序

# -*- coding: utf-8 -*-import barcode
import random
from barcode.writer import ImageWriter
import os
from PIL import Image#生成一维码的类型的种类
"""
[u'code39', u'code128', u'ean', u'ean13', u'ean8', u'gs1', u'gtin',u'isbn', u'isbn10', u'isbn13', u'issn', u'jan', u'pzn', u'upc', u'upca']
"""#生成一维码,参数:码类型、码内容、文件名(文件名后缀自动加.png)
def barcode_to_png(barcode_type,text_str,filename):EAN = barcode.get_barcode_class(barcode_type) #设置生成一维码的类型ean = EAN(text_str, writer=ImageWriter())ean.save(filename)#8个一维码进行2*4的方式合并存成一张图,参数:码类型、文件数量
def barcode_fun(barcode_type,file_num):for i in range(8*file_num):r_num = random.randint(100000000000000, 999999999999999)barcode_to_png(barcode_type,str(r_num),'./code/'+barcode_type+'/'+str(i))if( (i+1)%8 == 0 ):base_img0 = Image.open('./code/'+barcode_type+'/'+str(i-7)+'.png')base_img1 = Image.open('./code/'+barcode_type+'/'+str(i-6)+'.png')base_img2 = Image.open('./code/'+barcode_type+'/'+str(i-5)+'.png')base_img3 = Image.open('./code/'+barcode_type+'/'+str(i-4)+'.png')base_img4 = Image.open('./code/'+barcode_type+'/'+str(i-3)+'.png')base_img5 = Image.open('./code/'+barcode_type+'/'+str(i-2)+'.png')base_img6 = Image.open('./code/'+barcode_type+'/'+str(i-1)+'.png')base_img7 = Image.open('./code/'+barcode_type+'/'+str(i)+'.png')x = base_img0.size[0]y = base_img0.size[1]target = Image.new('RGBA', (2*x,4*y), color=0)target.paste(base_img0,(0,0,x,y))target.paste(base_img1,(x,0,2*x,y))target.paste(base_img2,(0,y,x,2*y))target.paste(base_img3,(x,y,2*x,2*y))target.paste(base_img4,(0,2*y,x,3*y))target.paste(base_img5,(x,2*y,2*x,3*y))target.paste(base_img6,(0,3*y,x,4*y))target.paste(base_img7,(x,3*y,2*x,4*y))target.save('./code/'+barcode_type+'/'+barcode_type+"_"+str((i+1)/8)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-7)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-6)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-5)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-4)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-3)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-2)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i-1)+'.png')os.system("rm "+'./code/'+barcode_type+'/'+str(i)+'.png')#主函数设置需要生成码类型的目录,生成相应码。
if __name__=="__main__":os.system("mkdir -p ./code")os.system("mkdir -p ./code/code128")os.system("mkdir -p ./code/EAN13")os.system("mkdir -p ./code/code39")os.system("mkdir -p ./code/upca")code128 = 'code128'ean13   = 'EAN13'code39  = 'code39'upca    = 'upca'barcode_fun(code128,10)barcode_fun(ean13,10)barcode_fun(code39,10)barcode_fun(upca,10)

3.结果
在当前目录下的code目录下生成了相应的目录和文件

 

code128_1.png作为实例展示效果为:

 

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

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

相关文章

Objective-C学习笔记(一)–类

1、类的定义与实现1.1说明所有的类都是继承NSObject。类的接口与实现是分开的,一般类的定义是放在.h文件【包含类的名称、成员变量、方法、属性、继承关系 、遵从的协议】;实现部分是放在.m文件中【包含每个属性和方法的具体实现以及协议的方法实现】语法…

SqlServer时间戳与普通格式的转换

/********************************************** 时间戳转换(秒) **********************************************/--普通时间转换为时间戳(秒)SELECT DATEDIFF(SS,1970-1-1 00:00:00,GETUTCDATE()) --毫秒时间戳转普通时间(秒&#xff09…

laravel支付宝sdk接入

自己学习使的 仅供参考 一、打开蚂蚁金服开放平台 找到研发服务->沙箱应用 设置沙箱应用保证可以使用 二、找到sdkdemo下载放到本地环境并改名为alipay配置里面的config 注释有详细的讲解仔细看 三、(这里是我的习惯)放到laravel的app下 四、去confi…

图片动画横条广告带上下滚动

查看效果&#xff1a;http://keleyi.com/keleyi/phtml/flash/ 以下是HTML文件代码&#xff1a; 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2 <html xmlns&q…

mysqli与pdo防sql注入源码

1.mysqli防注入 <?php//定义配置文件$config [//地址"host" > "127.0.0.1",//数据库名称"dbname" > "xxxx",//用户名"user" > "xxxx",//密码"pass" > "xxx"];//连接数据库…

npm上传自己的项目

npm安装就不介绍了&#xff0c;自行度娘。本文介绍npm上传 先初始化&#xff1a;npm init 根据提示填完系统介绍信息&#xff08;package.json&#xff09;&#xff1b; 再登录npmjs&#xff1a; npm login 效果如图&#xff1a; 输入注册的用户名、密码、邮箱&#xff0c;…

PyQt5 打包问题解决 Unable to find “D:\anaconda3\lib\site-packages\PyQt5\Qt\translations\qtwebengine_locale

PyQt5 打包问题解决 Unable to find "D:\anaconda3\lib\site-packages\PyQt5\Qt\translations\qtwebengine_locale 今天用pyinstaller打包Pyqt5程序报了以下错误&#xff0c;通过在网上查询得到了解决方案 Unable to find "D:\anaconda3\lib\site-packages\PyQt5\Qt…

融于心而表于行 之 程序的执行问题

2.4 程序的执行问题Linux的多用户说完了&#xff0c;还需要进行下一个话题&#xff0c;那就是多任务的问题。所谓多任务&#xff0c;就是同一时刻能够执行多个程序。这个问题其实对于大多数Windows用户它都不是个问题&#xff0c;因为我们经常会一边浏览网页&#xff0c;一边用…

使用ffmpeg 将mp4文件转化未hls文件

使用laravel-admin后台先写一个视频上传 protected function form(){$form new Form(new Video());$form->text(video_title, __(Video title));// uniqueName(随机生成一个文件名) move(放入的文件夹)$form->file(video_url, __(Video url))->uniqueName()->mov…

WebStorm文件类型关联设置

无意中创造了一个没有扩展名的文件&#xff0c;我选择了错误的文件类型关联。是js类型的&#xff0c;我却选成了文本&#xff0c;Ws每次编辑类型就成了txt文本&#xff0c;这个问题让我很苦恼&#xff0c;以下是我的解决方案。 错选的弹出框如下&#xff1a; 解决方案如下&…

题目1369:字符串的排列

题目1369&#xff1a;字符串的排列 时间限制&#xff1a;1 秒 内存限制&#xff1a;32 兆 题目描述&#xff1a;输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入&…

WebStorm按Tab建快速生成代码模块

WS中&#xff0c;比如调试每次都要写的console.log(xxx);每次都要敲一遍&#xff0c;还有if模块&#xff0c;for循环模块&#xff0c;难道没有快捷键&#xff0c;可以生成代码模块吗&#xff0c;答案是“有”。 操作步骤如下&#xff08;汉化版WS&#xff09;&#xff1a; 1、…

python根据开头和结尾字符串获取中间字符串的方法

python根据开头和结尾字符串获取中间字符串的方法 本文实例讲述了python根据开头和结尾字符串获取中间字符串的方法。分享给大家供大家参考。具体分析如下&#xff1a; 这里给定一个字符串&#xff0c;指定开头和结尾的字符串&#xff0c;返回中间包夹的字符串&#xff0c;比…

iterm2一键登陆服务器(门神权限不用每次都输密码进行验证)

1、新建文件 vim ~/.ssh/config 在打开的文件中输入以下内容 Host * ControlMaster auto ControlPath ~/.ssh/master-%r%h:%p ControlPersist yes ServerAliveInterval 60 #保持持久链接 每60s 发送一个请求检测2、 新建文件 并赋予可执行权限&#xff…

STM32 cubeMX 光敏电阻AD转化实验

文章代码使用 HAL 库。 文章目录 前言一、光敏电阻介绍二、光敏电阻原理图解析三、ADC采样介绍1. 工作原理&#xff1a;2. ADC精度&#xff1a; 四、STM32 cubeMX配置ADC采样五、代码编写总结 前言 实验开发板&#xff1a;STM32F051K8。所需软件&#xff1a;keil5 &#xff0c;…

SQLServer 2012重启服务后,自增1的标识列一次增长了1000左右

sql2012我重启了下sql服务&#xff0c;然后自增列Id居然一下子跳了1000&#xff0c;怎么回事啊&#xff1f;如果第一条数据是1&#xff0c;我重启服务&#xff0c;再添加就是1001&#xff0c;如果继续添加不重启服务的话就是1002&#xff0c;如果再次重启的话就是2001.重启下就…

Sphinx+MySQL5.1x+SphinxSE+mmseg

一.不停止mysql的情况下安装SphinxSE1.确定mysql版本,下载对应源码包此处下载5.1.69的mysql源码包#wget ftp://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.1/mysql-5.1.69.tar.gz 解压2.下载sphinx:#wget http://sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz 解压3.拷贝m…

Python3实现从txt文件中读取指定行的方法

Python3实现从txt文件中读取指定行的方法 本文实例讲述了Python3实现从文件中读取指定行的方法。分享给大家供大家参考。具体实现方法如下&#xff1a;def getline(the_file_path, line_number):if line_number < 1:return for cur_line_number, line in enumerate(open(the…

tls握手浅析

首先上图&#xff1a; tcp三次握手完毕 tls&#xff1a; 1、client hello client random 支持的tls 支持的算法 2、server hello server random 选择的tls协议 选择的算法 证书 公钥 3、client 公&#x1f511;加密后的。 premaster secret server 私钥解密得到 premas…

第二题:坦克游戏1.0(方法:动态规划)

stO 在此给某位靠打01背包处理射程并AC的大神跪了 Orz 问题描述&#xff1a; henry公司最近推出了一款新的坦克游戏。在游戏中&#xff0c;你将操纵一辆坦克&#xff0c;在一个NM的区域中完成一项任务。在此的区域中&#xff0c; 将会有许多可攻击的目标&…