Python 常用运维模块之OS模块篇

Python 常用运维模块之OS模块篇

OS 模块

使用os模块之前需要导入

python 复制代码
import os

获取当前工作目录

也就是当前python脚本所在的目录
os.getcwd() 用于获取当前工作目录的路径

例如,如果脚本位于 /home/user 目录下,运行此代码会输出 /home/user

python 复制代码
print(os.getcwd())

更改当前工作目录

切换脚本所在的目录,类似于cd 命令
os.chdir() 用于更改当前工作目录

如果路径不存在,会抛出 FileNotFoundError

python 复制代码
os.chdir("/path/to/new/directory")
print(os.getcwd())  # 验证当前目录是否已更改

返回当前目录路径

os.curdir 返回当前目录的相对路径,通常是 .

python 复制代码
print(os.curdir)  # 输出当前目录的相对路径

返回上一级目录路径

os.pardir 返回上一级目录的相对路径,通常是 ...

python 复制代码
print(os.pardir)  # 输出上一级目录的相对路径

递归生成目录路径

os.makedirs() 可以递归创建多级目录

如果目录已存在,会抛出 FileExistsError

python 复制代码
os.makedirs("dir1/dir2")
print(os.listdir())  # 验证目录是否创建成功

删除目录

如果其中有文件,则递归删除
os.removedirs() 递归删除空目录

如果目录不为空,会抛出 OSError

python 复制代码
os.removedirs("dir1/dir2")
print(os.listdir())  # 验证目录是否删除

创建目录

不支持递归生成目录
os.mkdir() 创建单级目录

如果目录已存在,会抛出 FileExistsError

python 复制代码
os.mkdir("new_dir")
print(os.listdir())  # 验证目录是否创建成功

删除目录

若目录不为空则无法删除、报错

相当于 shell 中的 rmdir
os.rmdir() 删除空目录

如果目录不为空,会抛出 OSError

python 复制代码
os.rmdir("new_dir")
print(os.listdir())  # 验证目录是否删除

列出特定目录下文件和子目录

os.listdir() 列出指定目录下的所有文件和子目录,不包括子目录中的内容

python 复制代码
print(os.listdir("/path/to/directory"))

删除某个特定文件

os.remove() 删除指定文件

如果文件不存在,会抛出 FileNotFoundError

python 复制代码
os.remove("file.txt")

重命名某个文件

os.rename() 用于重命名文件或目录

如果目标文件已存在,会抛出 FileExistsError

python 复制代码
os.rename("old_file.txt", "new_file.txt")

获取某个文件/目录的信息

os.stat() 返回文件或目录的详细信息,包括大小、权限、修改时间

python 复制代码
import os
info = os.stat("file.txt")
print(info)

输出目录路径分隔符

可以用于处理不同平台之间的差异
os.sep 是路径分隔符

Windows 系统中是 **

LinuxmacOS 系统中是 /

python 复制代码
print(os.sep)  # 输出路径分隔符

输出文件行终止符

可以用于处理不同平台之间的差异
os.linesep 是行终止符

Windows 系统中是 \r\n

LinuxmacOS 系统中是 \n

python 复制代码
print(repr(os.linesep))  # 输出行终止符

输出用于分隔文件路径的字符串

可以用于处理不同平台之间的差异
os.pathsep 是环境变量中路径分隔符

Windows 系统中是 ;

LinuxmacOS 系统中是 :

python 复制代码
print(os.pathsep)  # 输出路径分隔符

输出当前操作系统的名称

可以用于处理不同平台之间的差异
os.name 返回当前操作系统的名称

python 复制代码
print(os.name)  # 输出操作系统名称

获取当前系统的环境变量

os.environ 是一个包含所有环境变量的字典
os.environ.get() 可以获取特定环境变量的值

python 复制代码
print(os.environ)  # 输出所有环境变量
print(os.environ.get("PATH"))  # 获取特定环境变量

判断是否有权限执行操作

os.access() 检查指定路径是否有指定权限
os.R_OK 表示读权限
os.W_OK 表示写权限

python 复制代码
print(os.access("file.txt", os.R_OK))  # 判断是否有读权限
print(os.access("file.txt", os.W_OK))  # 判断是否有写权限

修改文件的权限

os.chmod() 修改文件的权限,权限值以八进制表示

例如, 0o755 表示所有者有读写执行权限,组和其他用户有读执行权限

python 复制代码
os.chmod("file.txt", 0o755)  # 修改文件权限为 755

修改文件的属主和属组

os.chown() 修改文件的属主和属组
uidgid 分别是用户 ID 和组 ID

此功能仅在 Unix 系统中可用

python 复制代码
os.chown("file.txt", uid, gid)  # 修改文件的属主和属组

创建软连接

os.symlink() 创建一个软链接,指向源文件

如果目标文件已存在,会抛出 FileExistsError

python 复制代码
os.symlink("source.txt", "link.txt")  # 创建软链接

获取系统进程运行时间

os.times() 返回一个包含进程运行时间的元组,包括用户时间、系统时间等

python 复制代码
print(os.times())  # 输出进程运行时间
相关推荐
维度攻城狮2 小时前
实现在Unity3D中仿真汽车,而且还能使用ros2控制
python·unity·docker·汽车·ros2·rviz2
陈皮话梅糖@2 小时前
使用 Provider 和 GetX 实现 Flutter 局部刷新的几个示例
开发语言·javascript·flutter
简简单单做算法2 小时前
基于mediapipe深度学习和限定半径最近邻分类树算法的人体摔倒检测系统python源码
人工智能·python·深度学习·算法·分类·mediapipe·限定半径最近邻分类树
hvinsion3 小时前
基于PyQt5的自动化任务管理软件:高效、智能的任务调度与执行管理
开发语言·python·自动化·自动化任务管理
Aphelios3803 小时前
Java全栈面试宝典:线程机制与Spring IOC容器深度解析
java·开发语言·jvm·学习·rbac
qq_529835353 小时前
装饰器模式:如何用Java打扮一个对象?
java·开发语言·装饰器模式
日暮南城故里3 小时前
Java学习------源码解析之StringBuilder
java·开发语言·学习·源码
Wnq100724 小时前
智能巡检机器人在化工企业的应用研究
运维·计算机视觉·机器人·智能硬件·deepseek
Vitalia4 小时前
从零开始学Rust:枚举(enum)与模式匹配核心机制
开发语言·后端·rust
飞飞翼4 小时前
python-flask
后端·python·flask