在工作中碰到一个问题,就是要批量将仓库的货架号码生成二维码,这样可以方便仓库的同事打印并粘贴到需要的地方。
会涉及以下几方面内容或库:
- Pillow:基础图形处理库
- python-barcode:用以绘制barcode
在数据处理的一些敏感信息,我用xxxxxx进行了替代,但不影响整理代码阅读
主要参考的相关网站有以下:
其他说明:
- 用barcode.PROVIDED_BARCODES显示支持的barcode种类
- Barcode不支持中文,尽量字母+数字组合
#------------------------引入相关库--------------------------------
import os
import pandas as pd
import barcode
from barcode.writer import ImageWriter
print("barcode start ->") #开始处理
# ----------------------------读取文件------------------------------
path=r'C:\Users\02279074xxxxxx\BarCode'
srcFileName='xxxxxx_Bin_List.csv'
srcFile=os.path.join(path,srcFileName) #原始文件地址
df=pd.read_csv(srcFile,header=0,dtype={'Sec':str}) #文件读入dataframe
#---------------------文本转barcode函数----------------------------
def textTObarcode(data,bar_format):
obj_name=os.path.join(path,data) #png文件名
barcode_obj=barcode_format(data,writer=ImageWriter()) #生成barcode,指定为image
barcode_obj.save(obj_name) #保存文件,不需要指定后缀名
#---------------------code128支持数字+字母------------------------
barcode_format=barcode.get_barcode_class('code128') #指定barcode类型
for idx,row in df.iterrows(): #循环df
binText=row['Bin'] #获取转barcode数据
print(idx,binText) #debug only
textTObarcode(binText,barcode_format) #调用barcode函数
print("barcode done ->",path) #全部完成
初始时gm_df的数所如下:规则是 数字-字母-数字
输出图的效果如下:
这里多说一句,python在这种办公型的数据处理方面,真的非常方便。
以前我是用EXCEL的 BarCode插件+VBA,也可以达到效果;但无论是最后的效果,还是在中间数据处理+图片输出方面,python还是更加灵活方便。
本文暂时没有评论,来添加一个吧(●'◡'●)