Python 常用运维模块之Shutil 模块

news/2025/1/22 12:06:15/

Python 常用运维模块之Shutil 模块

    • Shutil 模块
      • 复制源文件到目标路径
      • 复制源文件权限到目标文件
      • 复制源文件的最近修改时间、权限等元信息到目标文件
      • 复制源文件到目标路径(包含文件名)
      • 复制源文件及相关元信息到目标路径
      • 移动文件或目录
      • 获取磁盘使用情况
      • 复制整个目录树
      • 获取可执行文件的路径

Shutil 模块

shutil 模块提供了许多高级的文件操作功能,常用于文件和目录的复制、移动、删除等操作
使用 shutil 模块之前需要导入:

python">import shutil

复制源文件到目标路径

shutil.copyfile() 用于复制文件内容
src 是源文件路径,dst 是目标文件路径
如果目标文件已存在,会被覆盖

python">shutil.copyfile("source.txt", "destination.txt")

复制源文件权限到目标文件

shutil.copymode() 仅复制文件的权限模式,不复制文件内容
目标文件必须已存在

python">shutil.copymode("source.txt", "destination.txt")

复制源文件的最近修改时间、权限等元信息到目标文件

shutil.copystat() 复制文件的权限、最近访问时间、最近修改时间等元信息
目标文件必须已存在

python">shutil.copystat("source.txt", "destination.txt")

复制源文件到目标路径(包含文件名)

shutil.copy() 复制文件内容和权限,但不会复制其他元信息
如果目标路径是目录,则目标文件名与源文件名相同

python">shutil.copy("source.txt", "/path/to/destination/")

复制源文件及相关元信息到目标路径

shutil.copy2()shutil.copy() 类似,但会额外复制文件的元信息(如修改时间等)
如果目标路径是目录,则目标文件名与源文件名相同

python">shutil.copy2("source.txt", "/path/to/destination/")

移动文件或目录

shutil.move() 用于移动文件或目录
如果目标路径是目录,则目标文件名与源文件名相同
如果目标路径已存在文件,会被覆盖

python">shutil.move("source.txt", "/path/to/destination/")

获取磁盘使用情况

shutil.disk_usage() 返回指定路径的磁盘使用情况,包括总容量、已用容量和剩余容量
返回值是一个 namedtuple,包含 totalusedfree 属性

python">usage = shutil.disk_usage("/")
print(f"Total: {usage.total / (1024**3):.2f} GB")
print(f"Used: {usage.used / (1024**3):.2f} GB")
print(f"Free: {usage.free / (1024**3):.2f} GB")

复制整个目录树

shutil.copytree() 用于递归复制整个目录树
目标目录必须不存在,否则会抛出 FileExistsError

python">shutil.copytree("source_dir", "destination_dir")

获取可执行文件的路径

shutil.which() 用于查找系统中可执行文件的路径,类似于 Unixwhich 命令
如果找不到文件,返回 None

python">print(shutil.which("python"))

http://www.ppmy.cn/news/1565213.html

相关文章

第01章 22 使用 vtkStructuredGrid 实现一个分形的树枝状几何体

以下是一个简单的示例&#xff0c;展示如何使用 vtkStructuredGrid 实现一个分形的树枝状几何体。我们将基于递归的分形算法生成树枝结构&#xff0c;并将其存储在 vtkStructuredGrid 中。 示例代码 #include <vtkSmartPointer.h> #include <vtkPoints.h> #includ…

【C++】引用(上)

1、引用的基本使用 作用&#xff1a;给变量起别名 语法&#xff1a;数据类型&#xff08;该数据类型要与原名的数据类型一致&#xff09; &别名原名&#xff1b; 示例&#xff1a; #include<iostream> using namespace std; int main() {int a 10;int& …

who w who

https://www.ityww.cn/733.html Linux查看用户登录信息命令-w & who & whoami Linux 基础 yvan 8年前 (2017-02-04) 3633次浏览 已收录 0个评论 显示当前已登录用户会话及动作命令-w 格式&#xff1a;w [options] [rootlocalhost ~]# w 23:46:39 up 8:29, 2 users, lo…

Linux:文件描述符fd、系统调用open

目录 一、文件基础认识 二、C语言操作文件的接口 1.> 和 >> 2.理解“当前路径” 三、相关系统调用 1.open 2.文件描述符 3.一切皆文件 4.再次理解重定向 一、文件基础认识 文件 内容 属性。换句话说&#xff0c;如果在电脑上新建了一个空白文档&#xff0…

场馆预定平台高并发时间段预定实现V2

&#x1f3af; 本文档介绍了场馆预订系统接口V2的设计与实现&#xff0c;旨在解决V1版本中库存数据不一致及性能瓶颈的问题。通过引入令牌机制确保缓存和数据库库存的最终一致性&#xff0c;避免因服务器故障导致的库存错误占用问题。同时&#xff0c;采用消息队列异步处理库存…

通过视觉语言模型蒸馏进行 3D 形状零件分割

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01;对应英文要求比较高&#xff0c;特此说明&#xff01; Abstract This paper proposes a cross-modal distillation framework, PartDistill, which transfers 2D knowledge from vision-language models …

一文玩转生成式AI新星DeepSeek-V3,带你5分钟配置自己的随身AI

前言 在人工智能领域&#xff0c;模型的性能与能力一直是衡量其价值的重要标准。近期&#xff0c;DeepSeek-V3 在多项评测中表现优异&#xff0c;超越了 Qwen2.5-72B 和 Llama-3.1-405B 等其他开源模型&#xff0c;并与世界顶尖的闭源模型 GPT-4o 以及 Claude-3.5-Sonnet 不相…

【优选算法】3----快乐数

这是第三篇算法题&#xff0c;也是十分的不好想&#xff0c;虽然定位在简单&#xff0c;但我感觉还是有些难度的~ -------------------------------------begin----------------------------------------- 题目解析&#xff1a; 同样的&#xff0c;这道算法题&#xff0c;看题…