【docker】【python】docker容器运行python转换数据库二进制字段为图片到本地服务器

场景:历史数据存在部分为二进制数组格式存在数据库中,需将历史数据转为图片文件,改为路径映射访问
解决思路:1.代码转换成图片格式存在服务器本地目录,完成后再使用linux sync命令
scp -r /home/sourceFilePath/* username@remote:/home/file/ 迁移到远程服务器图片文件夹
实现步骤:编写python转换脚本(python更简便,java也能实现),然后再源服务器创建对应镜像运行转换脚本,脚本代码末尾,下列步骤主要为服务器容器运行python脚本步骤说明
1.拉取python运行环境容器
2.运行python环境镜像(需设置为永不退出)
设置容器运行不挂起

docker run -it -d python:3.9.4 /bin/bash 

3.将主机python脚本拷贝到容器内

docker cp 本地文件路径 容器ID/容器NAME:容器内路径

4.进入容器运行脚本

docker exec -it 容器ID/容器NAME bash

5.运行脚本
自定义python模块引用依赖包构建:

    1. 执行`pip uninstall 代码包模块名称` # 卸载当前工具包
    2. pip install -r requirements.txt  -i https://pypi.tuna.tsinghua.edu.cn/simple #安装模块需要的公共包
    3. 进入`工具包`文件夹,执行 python setup.py bdist_wheel
    4. 执行 python setup.py install

安装脚本公共依赖包:

1. `pipreqs ./ --force --encoding=utf-8` #获取当前目录下项目包依赖并强制更新requirement.txt文件
2. `pip install -r requirements.txt  -i https://pypi.tuna.tsinghua.edu.cn/simple` #根据requirement.txt文件更新加载依赖

可能缺少的相关命令:

pip install pipreqs  # pipreqs: command not found

脚本运行:

python test.py > output.log #日志打印输出到output.log

python转换代码:

import mysql.connector
import os

# 连接数据库
cnx = mysql.connector.connect(user='username', password='password', host='localhost', database='database_name')

# 获取数据库游标
cursor = cnx.cursor()

# 查询图片数据
query = "SELECT image_data FROM images_table"
cursor.execute(query)

# 遍历结果集
for (image_data,) in cursor:
    # 创建本地文件路径
    file_path = "/home/file/image_" + str(cursor.rowcount) + ".jpg"
    
    # 将二进制图片数据写入本地文件
    with open(file_path, 'wb') as file:
        file.write(image_data)
    
# 关闭游标和数据库连接
cursor.close()
cnx.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值