尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

python实现提取iso中的文件(支持多平台)

python实现提取iso中的文件(支持多平台)
📅 发布时间:2026/6/20 0:59:12

 

 

#! /bin/python3
import os
import shutil
from glob import glob
from tempfile import TemporaryDirectory
import subprocess as spdef cp_with_level(list_src, folder_target, folder_src_parent):"""带原目录结构拷贝:param list_src: 带拷贝文件相对路径,支持通配符:param folder_target: 拷贝到的目标路径:param folder_src_parent: 原文件所处路径:return:"""# 拷贝目标文件for fn_need in list_src:parent_folder = os.path.join(folder_target, os.path.split(fn_need)[0])to_find = os.path.join(folder_src_parent, fn_need)print(f'searching: {to_find}')for fn in glob(to_find):pure_fn = os.path.basename(fn)os.makedirs(parent_folder, exist_ok=True)print(f'cp: {fn} -> {parent_folder}')shutil.copy(fn, parent_folder)# 修改权限为可写
            os.chmod(os.path.join(parent_folder, pure_fn), 0o600)def extract_from_iso(fn_iso, fns_to_extract, folder_store):"""从iso文件中提取内容:param fn_iso: iso文件路径:param fns_to_extract: 待提取文件相对路径列表,支持shell通配符匹配。示例:['path1/a999.txt', 'path1/b*.txt']:param folder_store: 提取的文件保存目录:return:"""if os.name == 'nt':  # windows# 挂载iso并返回盘符p = sp.Popen(['powershell', '-Command',f'echo "$((Mount-DiskImage -ImagePath "{fn_iso}" | Get-Volume).DriveLetter):"'],stdout=sp.PIPE,encoding='utf-8',)mount_path = p.stdout.read().strip()# 拷贝目标文件
        cp_with_level(fns_to_extract, folder_store, mount_path)# 取消挂载p = sp.Popen(['powershell', '-Command',f'Dismount-DiskImage -ImagePath {fn_iso}',])p.wait()else:  # linux# 挂载isotmp_dir = TemporaryDirectory()mount_path = os.path.join(tmp_dir.name, 'tmp_mount')os.makedirs(mount_path, exist_ok=True)p = sp.Popen(['mount', fn_iso, mount_path])p.wait()# 拷贝目标文件
        cp_with_level(fns_to_extract, folder_store, mount_path)# 取消挂载p = sp.Popen(['umount', mount_path])p.wait()

 

相关新闻

  • 2025 电缆绝缘材料生产厂家最新推荐榜单:品牌技术实力解析,爱普等企业领跑行业
  • SAP BP主数据维护BAPI CVI_EI_INBOUND_MAIN(转)
  • 运放速度揭秘:带宽与压摆率的关键对决

最新新闻

  • MPC5604P外部中断与DSPI时序参数深度解析与工程实践
  • DFT仿真实战:从STUCK-AT到AT-SPEED的验证要点解析
  • ReadCat安全最佳实践:终极插件安全与用户数据保护指南
  • 2026 上海权威数据 + 真实用户口碑|靠谱空调维修首选上海迪迅通制冷设备 - 星际AI
  • 从零开始:PaddleX如何让AI开发像搭积木一样简单?
  • 抖店无货源铺货怎么不违规?拼多多商品违规检测新手合规教程 - 抖掌柜

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号