记一次用32行代码,解放双手的过程(批量生成物品信息二维码)

简介: 或许基本上没有人会把“编程”和教师这个行业联系起来,如果有,想到的应该也是计算机老师。

本文不是编程课的广告,只是一次过程分享。请放心食用!


或许基本上没有人会把“编程”和教师这个行业联系起来,如果有,想到的应该也是计算机老师。


其实,在我们的日常工作中会遇到很多需要大量重复执行的任务,如果这个时候能用上编程,那工作效率是会大大提高了。


今天,在钉钉群有群友提出了这样的需求:



后来经过了解,他应该是要把学校物品的信息放进二维码中,帖在物品上,方便随时扫码查看信息。



想要扫码后看到的样子:



在物品列表的xls文档中,可能有几千条数据,如果人工手动来生成二维码,这工作量简直无法想象。


我建议他用代码来实现。由于今天相当清闲,我就顺便帮他弄了~


整体思路


通常在看到这方面需求的时候,我都会在脑海里面构想,用什么语言的代码来实现呢?php?nodejs?python?


今天这个由于是群友需要的,那就需要能快速搭建运行环境,如果运行环境都要搭建半天,那也太不愉快了。所以,这次我选择了python。


python读取文件、下载图片都比较方便,日常用来帮些小忙是很舒心的。


本次任务比较简单,大致思路就是:


  1. 读取xls表中的数据
  2. 按行进行循环
  3. 把每行的内容格式化为需要的文本信息
  4. 调用二维码生成接口API,生成二维码图片
  5. 把二维码图片下载到磁盘


我以前也没有用python做过和xls相关的事。所以,只能“面向百度”来编程了。当然,这是建立在有一定语法基础之上。



这不?一搜就出来了,不过这里面有一点明显的错误,需要自己判断并修改过来。


代码实现


把自己不明白的搜索到之后,就可以动手了。


先安装xlrd库。


pip3 install xlrd


接着,为项目创建文件夹,做好相关规划:



然后,噼里啪啦一阵敲打键盘,run.py中的代码就完成了:


# coding=utf-8
import xlrd
import requests
def download_img(img_url, name):
    header = {}  # 设置http header,这个和接口有关,本接口无需授权
    r = requests.get(img_url, headers=header, stream=True)
    if r.status_code == 200:
        open('./img/'+name+".jpg", 'wb').write(r.content)  # 将内容写入图片
    del r
if __name__ == '__main__':
    # 打开电子表
    readbook = xlrd.open_workbook(r'./data.xls')
    # 读第一张表的数据
    sheet = readbook.sheet_by_index(0)
    # 共有多少行?
    nrows = sheet.nrows
    # 从第二行开始,循环读
    for i in (1, nrows-1):
        # 拼凑成文字
        tmp = "存放位置:%s\n资产名称:%s\n单位:%s\n价格:%s\n采购时间:%s\n入库时间:%s\n责任处室:%s\n责任人:%s\n使用人:%s\n备注:%s\n"
        string = tmp % (sheet.cell(i, 0).value, sheet.cell(i, 1).value, sheet.cell(i, 2).value, sheet.cell(i, 3).value, xlrd.xldate.xldate_as_datetime(sheet.cell(
            i, 4).value, 0), xlrd.xldate.xldate_as_datetime(sheet.cell(i, 5).value, 0), sheet.cell(i, 6).value, sheet.cell(i, 7).value, sheet.cell(i, 8).value, sheet.cell(i, 9).value)
        # 开始生成二维码
        url = "https://api.pwmqr.com/qrcode/create/?url=%s&down=1" % (string)
        name = sheet.cell(i, 0).value+sheet.cell(i, 1).value
        download_img(url, name)
        print("%s 生成成功!" % (name))
    print("全部生成完毕!")


跑起来也是非常流畅的:



我只用了两条数据来进行测试,但相信即使是1000条,也用不了多少时间。


图片用所属教室和物品名来命名,打印时找起来也比较方便。



写在后面


其实,我们日常的工作中会遇到很多棘手的任务,特别是电脑上需要机械化重复操作的任务,如果能用上一些自动化的工具,那就真正释放了双手。


未来已来,多多少少了解一点儿、学习一下,没有坏处。


我一直认为:工具是为我们服务的,作为非专业的我们,不需要把每个软件、每个工具学得那么精通,只需要会使用我们需要的那一部分就可以了。


回想一下,你看过的那些PPT教程、PS教程、excel教程…… 你用过多少?还记得多少呢?


- end -

相关文章
|
1月前
|
机器学习/深度学习 开发工具 计算机视觉
视觉智能平台常见问题之平台的换脸或者换人物到对应的某个图片里面去如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
22 0
|
1月前
|
安全
哈希竞猜游戏系统开发玩法详情/功能步骤/需求设计/流程方案/源码程序
Developing a hash guessing game system can provide a fun gaming experience. The following are possible gameplay and rules for your reference:
|
4月前
|
存储 索引 容器
如何在游戏中制作一个物品图鉴的功能
如何在游戏中制作一个物品图鉴的功能
41 0
|
11月前
如何让ChatGPT学习销售过往文字稿,并自动分析话术的优缺点,然后修改?
产品特点、服务优势、目标客户需求和痛点、行业与市场的趋势变化、竞争对手的优劣势、销售场景的特点和要求、销售环境、销售氛围、时间、地点、客户情感需求、心理转态、个性特点、解决方案
262 0
如何让ChatGPT学习销售过往文字稿,并自动分析话术的优缺点,然后修改?
|
6月前
|
存储 小程序 前端开发
【易售小程序项目】小程序私聊页面完善(带尾巴聊天气泡组件封装、滑至顶端获取历史聊天数据逻辑优化)【后端基于若依管理系统开发】
【易售小程序项目】小程序私聊页面完善(带尾巴聊天气泡组件封装、滑至顶端获取历史聊天数据逻辑优化)【后端基于若依管理系统开发】
29 0
|
11月前
|
存储 索引 容器
如何在游戏中制作一个物品图鉴的功能?
这种功能能够满足玩家的收集欲望,就像我们小时候收集的画册,邮票,现在大家喜欢收集的手办,卡片等等。只要有这样的一个收集图鉴,你就总是会想把其中的所有物品全部集齐或者点亮。
150 0
聊天框(番外篇)—如何实现@功能的整体删除
上一篇文章中,我们已经初步实现了聊天输入框,但其@功能是不完善的,例如无法整体删除、无法获取除用户名以外的数据(假设用户名不是唯一的)。有问题就要想办法解决,在网上百度了一圈后,倒是有一些收获。本文就着重解决@的整体删除以及获取额外数据。
961 0
聊天框(番外篇)—如何实现@功能的整体删除
|
运维 前端开发 程序员
巡检扫条形码工作方式的探索研究
巡检扫条形码工作方式的探索研究
88 0
巡检扫条形码工作方式的探索研究
|
分布式计算 算法 数据可视化
房源画像实验演示(上)|学习笔记
快速学习房源画像实验演示(上)
353 0
房源画像实验演示(上)|学习笔记
|
数据采集 Java fastjson
【掘金自动签到】有手就行的自动化签到工具
掘金社区签到拿矿石能兑换礼品,每天签到又怕遗忘,搞个脚本每天自动签到岂不美哉~
747 3
【掘金自动签到】有手就行的自动化签到工具

热门文章

最新文章