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

python 之 shutil 文件的复制、删除、移动文件以及目录,并支持文件的归档、压缩和解压

一、shutil

shutil 模块于文件和文件集合的高级操作,包括:复制、删除、移动文件以及目录,并支持文件的归档、压缩和解压等

二、使用例子

  • 复制文件及权限

    shutil.copy(src, dst)复制文件及权限;src 和 dst 文件路径。dst 文件名或目标目录shutil.copy('data/test.txt', 'utils') # 复制文件及权限
    shutil.copy2('data/test.txt', 'utils') # 复制文件及状态信息# 拷贝源文件写入新文件
    shutil.copyfileobj(open('data/test.txt', 'r'), open('data/test.txt', 'w'))
    shutil.copyfile('data/test.txt', 'data/test1.txt')# 拷贝文件夹、忽略拷贝哪些文件
    shutil.copytree('data', 'utils', ignore=shutil.ignore_patterns("*.py", 'user*'))
    
  • shutil.move(src, dst): 移动文件或重命名

    shutil.move('data/test.txt', 'utils')
    
  • shutil.rmtree(path)删除文件夹和文件夹内所有的内容

    shutil.rmtree('data')
    
  • shutil.copystat(src, dst, *, follow_symlinks=True) 复制文件的权限位、最后访问时间、最后修改时间和标记
    不会复制文件内容,只复制文件的状态信息

    import os
    # 修改源文件的访问时间和修改时间
    os.utime('src.txt', (1629380400, 1629380400))
    # 复制源文件的状态到目标文件
    shutil.copystat('src.txt', 'dst.txt')
    # 打印两个文件的状态
    print(os.stat('src.txt'))
    print(os.stat('dst.txt'))
    
  • shutil.copymode(src, dst)复制文件的权限

    # 调用 copymode 方法将 'data/test.txt' 文件的权限复制到 'data/test1.txt'
    shutil.copymode('data/test.txt', 'data/test1.txt')
    

    目标文件已存在,shutil.copymode() 会改变它的权限来匹配源文件的权限
    目标文件不存在,shutil.copymode() 会抛出一个 FileNotFoundError 异常
    源文件的权限无法获取,那么 shutil.copymode() 会抛出一个 PermissionError 异常

  • shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]]): 压缩文件(如 zip 或 tar)

    shutil.make_archive('data', 'zip', 'data')
    

    zipfile、tarfile 压缩文件、与解压缩文件

  • shutil.which() 于检查操作系统是否可以执行某个命令。本质上,它检查给定命令是否在环境变量中列出的任何目录中可用PATH
    该函数返回调用给定命令时将运行的可执行文件的绝对路径

    path = shutil.which('python')
    print(path)/Users/python/PycharmProjects/security/bin/python
    

相关文章:

python 之 shutil 文件的复制、删除、移动文件以及目录,并支持文件的归档、压缩和解压

一、shutil shutil 模块于文件和文件集合的高级操作,包括:复制、删除、移动文件以及目录,并支持文件的归档、压缩和解压等 二、使用例子 复制文件及权限 shutil.copy(src, dst)复制文件及权限;src 和 dst 文件路径。dst 文件名或…...

jface

JFace 是建立在 SWT 之上的 UI 部件,它是 SWT 的扩展并能和SWT交互。 ApplicationWindow和Action org.eclipse.jface.window.ApplicationWindow; JFace为了简化窗口的设计特别设计了类,比如ApplicationWindow这一个类,它里面包含了六个默认…...

六级备考28天|CET-6|听力第一讲|基本做题步骤与方法|13:30~14:30

目录 1. 重点词汇 proofread / ˈpruːfriːd / v.校对,校阅 autonomous adj.独立的 obsession n. 喜好 ample …...

系统设计 - 设计一个速率限制器

实施速率限制器的位置主要取决于我们的应用程序、技术栈、技术团队等因素。通常有三个位置可供选择:客户端、服务器端或中间件。 客户端是不可靠的地方来执行速率限制,因为恶意行为者可以轻易伪造客户端请求。 比将速率限制器放在服务器端更好的方法是使…...

[技术分享]Android平台实时音视频录像模块设计之道

实现背景 录像有什么难的?无非就是数据过来,编码保存mp4而已,这可能是好多开发者在做录像模块的时候的思考输出。是的,确实不难,但是做好,或者和其他模块有非常好的逻辑配合,确实不容易。 好多…...

JDKMissionControl官方用户指南--人工翻译

1. JMC8新增功能 暂时用不到,暂略 2. JDK Mission Control是什么 JMC是一组高级工具,用于管理、监视、分析Java应用程序并排除其故障。JMC能够对代码性能、内存和延迟等领域进行高效而详细的数据分析,而不会引入通常与分析和监控工具相关的…...

MySql-高级(分库分表问题简析) 学习笔记

文章目录 1. 为什么要分库分表?2. 用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?3. 你们具体是如何对数据库如何进行垂直拆分或水平拆分的?4. 分库分表时,数据迁移方案5. 如何设计可以动态扩容缩容…...

【5.20】五、安全测试——安全测试工具

目录 5.4 常见的安全测试工具 1. Web漏洞扫描工具——AppScan 2. 端口扫描工具——Nmap 3. 抓包工具——Fiddler 4. Web渗透测试工具——Metasploit 小提示:Kali Linux 5.4 常见的安全测试工具 安全测试是一个非常复杂的过程,测试所使用到的工具也…...

【13900k】i9 核显升级驱动

这里写自定义目录标题 官方的助手不能用显卡控制中心提示最新的更新搜索显卡 intel uhd graphics 770 手动下载安装自定义音频为啥也要卸载?新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片…...

使用Python将绿色转换为红色、红色转换为蓝色的图像处理

使用Python将绿色转换为红色、红色转换为蓝色的图像处理 在图像处理中,我们经常需要对图像进行颜色转换和修改。本篇博客介绍了如何使用Python的Pillow库来读取一个文件夹中的所有图像,并将其中的绿色转换为红色,红色转换为蓝色。我们还展示…...

Web2与Web3开发的不同之处

Web2是引入交互功能的第二代互联网,也是我们今天所熟悉的。随着Web的不断发展,第三代互联网,也被称为Web3,正处于积极开发中。Web3引入了在区块链上运行的去中心化和无需许可的系统。但是Web2和Web3开发之间有什么区别呢&#xff…...

递增数组的判断【python实现】

有时候需要对某一组数组的数据进行判断是否 递增 的场景,比如我在开发一些体育动作场景下,某些肢体动作是需要持续朝着垂直方向向上变化,那么z轴的值是会累增的。同理,逆向考虑,递减就是它的对立面。 下面是查找总结到…...

在自定义数据上训练 YOLOv8 实例分割

图像分割是一个核心视觉问题,可以为大量用例提供解决方案。从医学成像到分析流量,它具有巨大的潜力。实例分割,即对象检测+分割,甚至更强大,因为它允许我们在单个管道中检测和分割对象。为此,Ultralytics YOLOv8 模型提供了一个简单的管道。在本文中,我们将对自定义数据…...

洛谷密钥被破解:加密安全面临新挑战

密钥管理是加密系统中非常重要的一环,它涉及到密钥的生成、存储、分发、管理和销毁等多个方面。在密码学中,密钥是保护数据隐私和安全性的核心因素之一,因此,确保密钥的安全和保密性显得尤为重要。在2016年举办的 CQOI 数论竞赛中…...

02 Android开机启动之BootLoader及kernel的启动

Android开机启动之BootLoader及kernel的启动 1、booloader的启动流程 第一阶段:硬件初始化,SVC模式,关闭中断,关闭看门狗,初始化栈,进入C代码 第二阶段:cpu/board/中断初始化;初始化内存以及flash,将kernel从flash中拷贝到内存中,执行bootm,启动内核 2、kernel的启…...

代码随想录算法训练营 Day 49 | 121.买卖股票的最佳时机,122.买卖股票的最佳时机 II

121.买卖股票的最佳时机 讲解链接:代码随想录-121.买卖股票的最佳时机 确定 dp 数组以及下标的含义: dp[i][0] 表示第 i 天持有股票所得最多现金dp[i][1] 表示第 i 天不持有股票所得最多现金 确定递推公式: 如果第 i 天持有股票即 dp[i][0]&…...

精炼计算机网络——数据链路层(一)

文章目录 前言3.1 数据链路和帧3.1.1 数据链路和帧3.1.2 三个基本问题 3.2 点对点协议PPP3.2.1 PPP协议的特点3.2.2 PPP协议3.2.3 PPP协议的工作状态 总结 前言 上篇文章,我们一同学完了物理层的全部内容,在本篇文章中,我们初步学习数据链路…...

猿创征文|Spring系列框架之面向切面编程AOP

⭐️前面的话⭐️ 本篇文章将介绍一种特别重要的思想,AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。 …...

IoT架构设计

当前有一个支持5000万用户并发访问的网站,每个用户都有一个IOT设备,用户可以查看设备状态,接受设备通知 1.架构设计 针对不同的业务量模型,可以采用不同的架构设计,如下: 低业务量模型 针对低业务量模型…...

EasyRecovery16电脑硬盘数据恢复软件功能讲解

硬盘是很常见的存储数据的设备,硬盘中很多重要的数据一旦丢失会很麻烦,不过现在有硬盘数据恢复软件可以自行在家恢复数据。今天的文章就带大家来看看硬盘恢复数据的软件EasyRecovery。 EasyRecovery 是一款专业的数据恢复软件,支持恢复不同存…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

【Oracle APEX开发小技巧12】

有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

【JVM】- 内存结构

引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

【2025年】解决Burpsuite抓不到https包的问题

环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...