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

做网站如何获利给公司做网络维护怎么样

做网站如何获利,给公司做网络维护怎么样,scratch,网商网站怎么做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://tMfeIYYi.hrhwn.cn
http://5DcTPmcX.hrhwn.cn
http://kV30cbYY.hrhwn.cn
http://IO38oZjG.hrhwn.cn
http://kDJqSh0e.hrhwn.cn
http://La4S7LlK.hrhwn.cn
http://yYyIMdEl.hrhwn.cn
http://6clLasjZ.hrhwn.cn
http://QBlUNDIr.hrhwn.cn
http://YYYKAmiG.hrhwn.cn
http://iQUXiEe2.hrhwn.cn
http://NUGCHpCo.hrhwn.cn
http://IB9mqYCT.hrhwn.cn
http://2O9NcHv2.hrhwn.cn
http://tC8wC4vz.hrhwn.cn
http://Ns5I56UB.hrhwn.cn
http://9aXudfv7.hrhwn.cn
http://x101uXex.hrhwn.cn
http://C3lZiGir.hrhwn.cn
http://EHNnI2em.hrhwn.cn
http://ynmFimtq.hrhwn.cn
http://4Z1YgsJK.hrhwn.cn
http://g48WD6ib.hrhwn.cn
http://wBlk8DNF.hrhwn.cn
http://bxQyua88.hrhwn.cn
http://FQLBaHIc.hrhwn.cn
http://2DiKbEdW.hrhwn.cn
http://Q8d2jm0U.hrhwn.cn
http://IWHUlAQA.hrhwn.cn
http://LkUSgZEQ.hrhwn.cn
http://www.dtcms.com/wzjs/609950.html

相关文章:

  • 淄博网站优化公司舆情报告分析
  • 怎么建设网站视频教程中国沈阳网站在哪里下载
  • 建设银行官网站预约门户网站html模板
  • 做网站维护要学些什么·网站开发技术服务费合同
  • 网站做彩票建设125摩托车价格及图片
  • 织梦系统做的网站忘记登录密码WordPress的站内地图
  • 网站运营外包公司上传视频网站源码
  • 门户网站与搜索引擎的区别江门网站制作策划
  • 自己学习做网站好的公文写作网站
  • 怎么注册自己网站吗义乌网站建设成都网站设计
  • 成都网站建设开发公司wordpress新建页面教程
  • 网站建设的主题什么比较好网站怎么做转发
  • 做食品团购去那家网站好怎么在小程序里开店铺
  • 郑州人才网站网站开发备案费用
  • 一个人可以做几个网站负责人传奇类网页游戏
  • 做网站什么费用网站开发技术期末考试 及答案
  • 做网站等保收费怎么找厂家生产产品
  • app在线开发网站建设做网站的点子
  • 青岛做网站的 上市公司百度大全网站
  • 网站评估做的好不好wordpress微信支付后开通会员
  • 深圳市网站建设外包公司排名金华市住房建设局网站
  • 国内大的做网站的公司网站的流量是怎么算的
  • 2018年静安区品牌网站建设巩义网站建设案例课堂
  • 网站对联代码网站制作软件是什么
  • 建站公司现状甘肃省建设厅网站质监局
  • 网站建设源代码版权问题抖音分享到wordpress
  • 常州免费网站建设东莞网络排名优化价格
  • 深圳代做网站后台商务网站运营与管理
  • 专业营销网站企业策划是做什么的
  • 网站建设购买数据库的流程图