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

news/2025/10/11 10:44:10/文章来源:https://www.cnblogs.com/roundfish/p/19134522

 

 

#! /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()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/934641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年最新推荐球墨铸铁管厂家排行榜:涵盖自来水 / 污水 / 消防等多场景适用优质品牌权威推荐

在市政水利、供水排污、消防输水等工程领域,球墨铸铁管的质量直接决定项目稳定性与使用寿命。当前市场上,部分产品存在强度不足、防腐性能差等问题,导致后期维护成本激增,还可能威胁用水安全与工程安全。同时,品牌…

CopyOnWriteArrayList 的故事--一起看看java原生的读写分离

CopyOnWriteArrayList 是JUC中提供的,为了实现高并发的而提供的list容器之一。对于大部分的业务场景,都是读多写少,并发度也基本卡在了读的位置。通常支持并发的容器在解决并发时,采用是:(1)数据分割,每个线程…

OSI模型-笔记

OSI模型 网络工程师必背 OSI(Open System Interconnection Reference Model) 基本概念 用范围形容网络局域网:LAN 广域网:WAN以太网:一个网络的封装协议,不是一种类型或范围 局域网当中使用的是以太网协议(IEEE…

痞子衡嵌入式:如果i.MXRT1xxx在Hab关闭时出现偶发性启动失败,请先检查JTAG电路

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT1xxx在Hab关闭时出现偶发性启动失败原因分析。最近有一个 RT1064 客户(无人机产品)遇到了一个奇怪的启动失败问题,客户应用程序设计里需要…

如何使用notepad++查看二进制bin文件

如何使用notepad++查看二进制bin文件 菜单栏——插件——插件管理——找到HEX-Editor——安装,等待重启——用notepad++打开二进制bin文件(显示乱码)——插件——HEX-Editor——View in HEX——成功另外,下图红色圈内…

2025 电缆绝缘材料生产厂家最新推荐榜单:品牌技术实力解析,爱普等企业领跑行业

随着电力、风电、轨道交通等领域的高速发展,电缆绝缘材料作为保障系统安全的核心部件,其性能与质量直接决定设备运行稳定性。当前市场品牌繁杂,部分产品在耐温性、绝缘强度等关键指标上不达标,且风电、矿用等特殊场…

SAP BP主数据维护BAPI CVI_EI_INBOUND_MAIN(转)

SAP BP主数据维护BAPI CVI_EI_INBOUND_MAIN_sap bp bapi-CSDN博客近期有创建BP供应商主数据的需求,想起上次写这个批导还是2018年,当时的我面对这个BAPI还是抗拒的,因为算是相对来说比较复杂的一类BAPI了,当时网上…

2025 年最新外呼系统机构最新推荐排行榜:深度解析技术实力、服务体系及行业适配方案电话营销外呼系统/智能外呼系统/外呼系统电销卡/外呼系统平台搭建推荐

在数字化转型全面深化的 2025 年,外呼系统已成为企业打通客户沟通链路、提升业务拓展效率的核心工具。然而当前市场中,外呼系统厂商资质良莠不齐,部分厂商缺乏合规资质、技术架构落后导致通话中断率高,或售后服务响…

运放速度揭秘:带宽与压摆率的关键对决

运放速度揭秘:带宽与压摆率的关键对决本文探讨了放大器带宽与速度的概念区别,分析了小信号和大信号带宽的特性及其影响因素。小信号带宽由RC时间常数决定,反映电路的线性响应;大信号带宽则受限于压摆率,影响输出波…

详细介绍:深入解析 List 容器组件:构建高效、可交互的列表解决方案

详细介绍:深入解析 List 容器组件:构建高效、可交互的列表解决方案pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &qu…

CF848C Goodbye Souvenir 题解(CDQ分治)

考虑到可以将每个数最后一次出现与第一次出现的位置之差拆成若干个相邻位置之差: \[last_i - first_i = \sum i-pre_i \]且每次修改一个点,对 \(pre\) 的影响是 \(O(1)\) 的,所以我们可以将所求的答案转为一个(带权…

[Python] python3 使用虚拟环境

[Python] python3 使用虚拟环境$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");因为Ubuntu不让直接使用pip下载软件,防止影响本机环境,因此需要使用虚拟环…

2025 年汽车刹车卡钳厂家最新推荐榜单:原厂适配 / 高性能 / 新能源专用等多类型产品深度解析及选购指南分体锻造/大轮毂/高性能/新能源汽车刹车卡钳厂家推荐

随着汽车改装市场不断发展,刹车卡钳作为保障行车安全的核心部件,其品质、适配性与性能愈发受到车主重视。但当前市场产品良莠不齐,部分产品存在适配难、需额外加装配件,制动体验差、无法满足不同场景需求,以及服务…

2025年开发者必看:本土化代码管理平台Gitee如何助力中国开发者高效协作

2025年开发者必看:本土化代码管理平台Gitee如何助力中国开发者高效协作 在全球数字化转型加速的背景下,代码管理平台已成为开发者日常工作中不可或缺的工具。特别是对于中国开发者而言,选择一个符合本土需求、访问流…

2025 年消防设施检测 / 电气防火检测 / 防雷装置检测 / 消防维保 / 环境检测服务公司推荐:北京市通雷防雷装置安全检测有限公司提供专业技术支持

随着我国城市化进程加快,建筑规模与复杂度不断提升,消防安全与防雷安全已成为城市运行安全的关键环节。当前,国家对消防与防雷检测行业的监管日趋严格,先后出台多项政策规范检测服务标准,要求相关企业必须具备专业…

直播app开发,如何快速获取系统时间? - 云豹科技

直播app开发,如何快速获取系统时间?#include <windows.h> #include <iostream> #include <string> int main() {/*typedef struct _SYSTEMTIME {WORD wYear;WORD wMonth;WORD wDayOfWeek;WORD w…

2025 年泡棉厂家最新推荐榜:全方位解析 EPE 泡棉 / EVA 泡棉 / 珍珠棉泡棉 / 泡棉内衬优质企业,助采购商精准选对品牌

当前泡棉市场需求持续攀升,应用场景覆盖电子、汽车、建筑、医疗等多个领域,但市场中品牌数量繁杂,产品质量、性能及服务水平差异显著,采购商在挑选时常常陷入困境,难以快速锁定符合自身需求的优质品牌。为解决这一…

C. awoos Favorite Problem

https://codeforces.com/problemset/problem/1697/C 题意:给定长度为n的字符串s和t,两个字符串均只包含字符abc,现在对s进行操作,ab可变为ba,bc可变为cb,问不限次数操作后,s能否==t。 思路:先看abc数量是否相等…

Outlook邮箱大附件邮件是什么?

在日常办公中,用Outlook发送高清视频、大型设计图等文件是常事,这类邮件被称为Outlook邮箱大附件邮件。但普通邮箱附件容量有限,一般20MB到25MB,发大文件容易失败。传统办法如压缩、分批传输,耗时又容易出错。为解…

DevExpress WinForms中文教程:Data Grid - 如何自定义排序和非排序列?

DevExpress WinForms中文教程:Data Grid - 如何自定义排序和非排序列?DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于…