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"))
相关推荐
拓端研究室TRL8 分钟前
Python与MySQL网站排名数据分析及多层感知机MLP、机器学习优化策略和地理可视化应用|附AI智能体数据代码
人工智能·python·mysql·机器学习·数据分析
小哈里13 分钟前
【pypi镜像源】使用devpi实现python镜像源代理(缓存加速,私有仓库,版本控制)
开发语言·python·缓存·镜像源·pypi
全栈派森22 分钟前
云存储最佳实践
后端·python·程序人生·flask
ayiya_Oese26 分钟前
[模型部署] 1. 模型导出
图像处理·python·深度学习·神经网络·视觉检测
电商数据girl26 分钟前
酒店旅游类数据采集API接口之携程数据获取地方美食品列表 获取地方美餐馆列表 景点评论
java·大数据·开发语言·python·json·旅游
天天打码27 分钟前
python版本管理工具-pyenv轻松切换多个Python版本
开发语言·python
楠奕33 分钟前
python中使用neo4j
开发语言·python·neo4j
zybsjn38 分钟前
后端系统做国际化改造,生成多语言包
java·python·c#
2501_9063143239 分钟前
MCP-RAG 服务器:完整设置和使用指南
运维·服务器
南斯拉夫的铁托1 小时前
labelimg安装及使用指南(yolo)
开发语言·python·yolo