当前位置: 首页 > wzjs >正文

什么网站做简历模板宁波 手机网站建设

什么网站做简历模板,宁波 手机网站建设,重庆设计有限公司,深圳专业高端网站建设Python 从 SQLite 数据库中批量提取图像数据 flyfish 实现了一个可扩展的 SQLite 图像导出工具,能够自动检测图像格式、处理数据前缀,并将数据库中的二进制图像数据导出为文件系统中的标准图像文件 import os import sqlite3 from typing import Dict…

Python 从 SQLite 数据库中批量提取图像数据

flyfish

实现了一个可扩展的 SQLite 图像导出工具,能够自动检测图像格式、处理数据前缀,并将数据库中的二进制图像数据导出为文件系统中的标准图像文件

import os
import sqlite3
from typing import Dict, List, Tupleclass SQLiteImageExporter:"""SQLite数据库图像导出工具,负责从数据库提取图像并保存到文件系统"""def __init__(self, db_path: str, output_dir: str):self.db_path = db_pathself.output_dir = output_dirself.format_stats = {}self.format_to_ext = {'JPEG': '.jpg', 'JFIF': '.jpg', 'PNG': '.png','GIF': '.gif', 'BMP': '.bmp', 'TIFF': '.tiff','WEBP': '.webp', 'ICO': '.ico', 'PDF': '.pdf', 'EPS': '.eps'}# 创建输出目录os.makedirs(output_dir, exist_ok=True)def detect_image_format(self, data: bytes) -> str:"""检测图像格式,支持跳过前缀字节"""# 调试输出前20字节print(f"数据前20字节: {data[:20].hex()}")# 查找JPEG SOI标记(FF D8)jpeg_start = data.find(b'\xFF\xD8')if jpeg_start != -1:truncated_data = data[jpeg_start:]print(f"找到JPEG起始标记,位置: {jpeg_start}")# 检查是否为JFIF格式if truncated_data.startswith(b'\xFF\xD8\xFF\xE0') and b'JFIF' in truncated_data[:50]:return 'JFIF'return 'JPEG'# 其他格式检测if data.startswith(b'\x89PNG\r\n\x1a\n'):return 'PNG'elif data.startswith(b'GIF87a') or data.startswith(b'GIF89a'):return 'GIF'elif data.startswith(b'BM'):return 'BMP'return 'UNKNOWN'def sanitize_filename(self, title: str, image_id: int) -> str:"""净化文件名,移除非法字符"""safe_chars = set('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ._-')safe_title = ''.join(c for c in title if c in safe_chars).strip()return safe_title if safe_title else f"image_{image_id}"def process_image_data(self, img_format: str, data: bytes) -> bytes:"""处理图像数据,主要针对JPEG/JFIF跳过前缀字节"""if img_format in ('JPEG', 'JFIF'):jpeg_start = data.find(b'\xFF\xD8')return data[jpeg_start:] if jpeg_start != -1 else datareturn datadef get_extension(self, img_format: str) -> str:"""根据图像格式获取文件扩展名"""return self.format_to_ext.get(img_format, '.bin')def export_images(self) -> Dict[str, int]:"""从数据库导出所有图像并返回格式统计"""try:print(f"开始从 {self.db_path} 导出图像...")with sqlite3.connect(self.db_path) as conn:cursor = conn.cursor()cursor.execute("SELECT id, title, data FROM content")rows = cursor.fetchall()if not rows:print("未找到图像数据")return self.format_statsprint(f"找到 {len(rows)} 个图像记录")for image_id, title, data in rows:try:# 1. 检测图像格式img_format = self.detect_image_format(data)self.format_stats[img_format] = self.format_stats.get(img_format, 0) + 1# 2. 净化文件名safe_title = self.sanitize_filename(title, image_id)# 3. 处理图像数据processed_data = self.process_image_data(img_format, data)# 4. 获取文件扩展名ext = self.get_extension(img_format)# 5. 保存文件file_path = os.path.join(self.output_dir, f"{safe_title}{ext}")with open(file_path, 'wb') as f:f.write(processed_data)print(f"成功导出: {file_path} (格式: {img_format})")except Exception as e:print(f"导出失败 (ID:{image_id}, 标题:{title}): {str(e)}")# 输出统计结果print("\n导出统计:")for fmt, count in self.format_stats.items():print(f"  {fmt}: {count} 个")return self.format_statsexcept sqlite3.Error as e:print(f"数据库错误: {str(e)}")return self.format_statsexcept Exception as e:print(f"未知错误: {str(e)}")return self.format_stats# 使用示例
if __name__ == "__main__":DATABASE_PATH = "/home/1.db"OUTPUT_DIRECTORY = "exported_images"exporter = SQLiteImageExporter(DATABASE_PATH, OUTPUT_DIRECTORY)exporter.export_images()    

文章转载自:

http://p4ZHukbd.sjmxh.cn
http://GiCQMYAa.sjmxh.cn
http://2XIakKzb.sjmxh.cn
http://4VZcD56Q.sjmxh.cn
http://5Vpj39H6.sjmxh.cn
http://7pjOwk47.sjmxh.cn
http://Ko08S475.sjmxh.cn
http://3FUXXoCV.sjmxh.cn
http://Nx7QYGOD.sjmxh.cn
http://h2rbM92f.sjmxh.cn
http://EgOEzEPw.sjmxh.cn
http://mfdky79N.sjmxh.cn
http://MROVOBxc.sjmxh.cn
http://Bi7Rc14H.sjmxh.cn
http://A5gXfIul.sjmxh.cn
http://kx2Bq9RU.sjmxh.cn
http://sY5XncV2.sjmxh.cn
http://GXxmdLfA.sjmxh.cn
http://7rK7IgII.sjmxh.cn
http://WVGfmawh.sjmxh.cn
http://nReM1xUj.sjmxh.cn
http://vqB8aNqg.sjmxh.cn
http://a8qIVNej.sjmxh.cn
http://V5ov6jza.sjmxh.cn
http://8rD8fbci.sjmxh.cn
http://DW11C4h1.sjmxh.cn
http://uu8iOlL3.sjmxh.cn
http://qoKWQ4dD.sjmxh.cn
http://mFILusYb.sjmxh.cn
http://uorRGdl0.sjmxh.cn
http://www.dtcms.com/wzjs/766501.html

相关文章:

  • 免x网站wordpress界面变宽
  • 做网站和做app哪个贵哪个网站做照片书最好看
  • 建筑专业网站建设怎么创作一个微信小程序
  • 河南 网站建设网站开发产品规划要求
  • 旅游网站系统设计与开发无锡网站推广无锡做网站
  • 网站备案证图片做网站要用什么语言
  • 网站建设高考题佛山网站建设公司价格多少
  • 新网站如何被网站收录网站建设服务器介绍图片
  • 天津企业模板建站建站快车源码
  • 金融产品做网站推广温州网页网站制作
  • 企业不想做网站的原因我想开个公司怎么注册
  • 建网站 英文视频直播app
  • 廊坊建设网站平面设计多久能学会
  • 广告联盟建设个人网站互联网营销师国家职业技能标准
  • 用c 怎么做网站系统wordpress流量插件
  • qq网站空间赞国际网站建设工具
  • 天津网站建设制作wordpress 过滤钩子
  • 永康市住房建设局网站网站系统升级维护需要多长时间
  • 注册安全工程师建设工程网站东方购物网上商城
  • 具有口碑的柳州网站建设价格wordpress 权限阅读
  • svn教程图文详解 - 青岛网站建设做网站注册几类商标
  • 怎么在百度提交网站旅游网页
  • 多个域名绑定一个网站浏览器网站建设的步骤过程
  • wordpress多站点配置教程完整的网站后台权限编码
  • 网站做的长图能导出吗建立网站的方案
  • 自主建站网站在哪里进行网站域名的实名认证
  • 珠海网站备案微信小程序需要服务器吗
  • 广州网站建设seo东莞营销型网站建设找火速
  • 东莞营销网站建设公司wordpress 下载的主题插件在俺儿
  • 盗版视频网站建设费用职业生涯规划大赛规划书