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"))
相关推荐
谢亮_vipxieliang4 分钟前
ValidX vs Apache Commons Validator:功能与性能对比
java·服务器·spring boot·后端·spring cloud·apache·hibernate
惜离殇6 分钟前
从零开始的敲代码生活--Linux应用软件(文件操作基础2)
linux·文件io·目录io
Sunqk566515 分钟前
将开发板串口连接到Ubuntu后未找到对应的设备文件?
linux·运维·ubuntu
Jazz_z16 分钟前
使用 Python 合并与取消合并 Excel 单元格
开发语言·python·excel
Lenyiin17 分钟前
第6篇_Python高级语法与标准库精髓:从会用到达精通
java·python·html
Sophnet云平台17 分钟前
MCP与A2A双协议解析:2026年Agent互操作的技术选型
linux·服务器·网络·上下文·mcp·大模型测评·sophnet
晚风叙码19 分钟前
Linux(二)权限问题
linux·服务器
ZGG00323 分钟前
真题拆解 05:ReAct 还是 Plan-and-Execute——规划范式怎么选
python·agent·react
quantdash_cc31 分钟前
量化数据管道为什么会出现历史 K 线缺口?从 API 请求到数据质量的完整排查方法
开发语言·python·数据分析·量化·股票数据·quantdash