python脚本:遍历指定文件夹的图片,转base64存储至txt文件

最近工作需要,写了如题的python脚本,只要安装了python3,即可使用。

我的python环境

Windows + python 3.9.6,64位

代码逻辑

图片遍历转存base64工具 代码结构.png
可以下载慢慢看:链接:https://pan.baidu.com/s/13nUjXeh7igx9Q3gGzYLVyg?pwd=1dkd
提取码:1dkd

工具说明

递归遍历指定文件夹下所有图片(支持多层级文件夹),转为base64,存入指定文件夹下的txt文件中。

  • 代码中判断条件为“.jpg”。(可修改代码,增改格式要求)
  • 每个base64存一行。
  • txt文件命名规则:1.txt、2.txt……依次命名。
  • img_root参数:
    (必填,图片根目录)
  • batch参数:
    (非必填,每个txt最多存储batch条base64,超出自动新建txt并写入)
    默认为0——txt存储数据数量无限制,所有数据写入1.txt;
    任意正整数n——超出n条,新建txt文件并写入。
  • txt_root参数:
    (非必填,txt文件位置)
    空——自动在img_root下创建文件夹“img_base64_txt”;
    非空但不存在:自动创建该目录。

效果展示

image.png

企业微信截图_20220521182813.jpg
企业微信截图_20220521183013.jpg

上一张丢了耗时显示:企业微信截图_20220521223143.jpg

企业微信截图_20220521183049.jpg

代码

完整代码如下,粘贴到编辑器即可使用,代码最下方有示例:

# -*- coding: utf-8 -*-
import base64
import datetime
import math
import os

"""

遍历指定目录下的所有图片,存储 “filename,图片base64码”至txt文件。如“1.jpg,base64字符串”
文件名从1.txt开始,依次递增

参数:
    img_root:图片文件夹路径。注意:末尾不加斜杠。例:C:\zhangyue1\桌面\测试数据\人像
    batch:每个文件存放的数据行数,超出则创建新的txt文件继续写入
    txt_root:存放txt文件的目录,如无,则自动创建该目录

"""

# 图片转base64
def img2base64(img_path_str):
    """图片转base64并返回str

    :param img_path_str: 图片完整路径str,如r"C:\zhangyue1\桌面\测试数据\人像\1.jpg"
    :return: 返回转码后的base64字符串
    """
    with open(img_path_str, 'rb') as f:
        img_path_str = f.read()
    image_base64 = str(base64.b64encode(img_path_str), encoding='utf-8')
    return image_base64


# 将str数据data追加存入文件file_path中。
def save_data(file_path: str, data: str):
    """将str数据data追加存入文件file_path中。

    :param file_path: 文件完整路径。如“D:/test/1.txt”
    :param data: 数据字符串
    :return: 无返回值
    """
    # mode='a',追加模式:不清空文档已有数据,每次在文档末尾追加data
    with open(file=file_path, mode='a', encoding="utf-8") as
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值