Python 常用运维模块之Shutil 模块

Python 常用运维模块之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"))
相关推荐
xiao5kou4chang6kai47 分钟前
Python-GEE遥感云大数据分析与可视化(如何建立基于云计算的森林监测预警系统)
python·数据分析·云计算·森林监测·森林管理
古希腊数通小白(ip在学)10 分钟前
HCIA实现不同vlan间的通信
linux·服务器·网络
presenttttt15 分钟前
用Python和OpenCV从零搭建一个完整的双目视觉系统(四)
开发语言·python·opencv·计算机视觉
星辰离彬23 分钟前
Java 与 MySQL 性能优化:MySQL连接池参数优化与性能提升
java·服务器·数据库·后端·mysql·性能优化
半桔24 分钟前
【Linux手册】从接口到管理:Linux文件系统的核心操作指南
android·java·linux·开发语言·面试·系统架构
禁默32 分钟前
Linux Vim 编辑器详解:从入门到进阶(含图示+插件推荐)
linux·vim·excel
小苹果13572 小时前
阿里云mysql数据丢失,如何通过服务器备份在其他服务器上恢复数据,并获取mysql丢失数据,完成mysql数据恢复
服务器·mysql·阿里云
许白掰2 小时前
Linux入门篇学习——Linux 工具之 make 工具和 makefile 文件
linux·运维·服务器·前端·学习·编辑器
hrrrrb3 小时前
【TCP/IP】12. 文件传输协议
服务器·网络·tcp/ip