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

news/2025/1/24 0:18:05/

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

    • 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())  # 输出进程运行时间

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

相关文章

10倍数据交付提升 | 通过逻辑数据仓库和数据编织高效管理和利用大数据

数据已经成为企业核心竞争力的关键要素。随着大数据技术的发展,如何高效管理和利用海量的数据,已成为企业在数字化转型过程中面临的重要课题。传统的数据仓库已经不能满足当今企业对数据处理的高效性、灵活性和实时性的需求。在这种背景下,逻…

【实践】Python封装植物的健康状态,确保数据访问安全

【实践】Python封装植物的健康状态,确保数据访问安全 在面向对象编程中,封装是一种重要的思想,它允许我们将数据和操作这些数据的方法组织到一个对象中,同时保护数据的安全性,防止外部不合理的访问或修改。在本节中&a…

【Uniapp-Vue3】页面和路由API-navigateTo及页面栈getCurrentPages

一、API实现页面跳转 我们可以使用navigator标签进行跳转,也可以使用API进行跳转: uni.navigateTo({ url:"跳转路径及参数" }) 接收参数: 如果我们想要实现tabBar页面的跳转就要使用下面的这个API: uni.reLaunch({ url…

2024年博客之星主题创作|2024年度感想与新技术Redis学习

Redis工具深入了解 1.引言与感想2.Redis工具了解2.分布式系统了解2.1单机架构2.2分布式是什么2.3应用服务和数据库服务分离2.4引入更多的应用服务器2.5理解负载均衡器2.6数据库读写分离2.7引入缓存2.8数据库分库分表2.9引入微服务2.10分布式系统小结 1.引言与感想 2024学习了很…

【2025小年源码免费送】

💖学习知识需费心, 📕整理归纳更费神。 🎉源码免费人人喜, 🔥码农福利等你领! 💖山高路远坑又深, 📕大军纵横任驰奔, 🎉谁敢横刀立马行…

虚幻基础-1:cpu挑选(14600kf)

能帮到你的话,就给个赞吧 😘 文章目录 ue非常吃cpu拉满主频打开项目编写蓝图运行原因 时间长 关于压力测试 本文以14600kf为例,双12购入,7月份产。 ue非常吃cpu 经本人测试,ue是非常吃cpu的。 拉满主频 无论任何时间…

网络安全 | 域名和DNS详解

关注:CodingTechWork 引言 在现代互联网世界中,域名系统(DNS)是一个至关重要的基础设施。无论是用户访问网站、发送电子邮件,还是通过应用程序与远程服务器进行通信,DNS 都在背后默默地发挥着重要作用。本…

【蓝桥杯】43693.日期问题

题目描述 小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在 1960 年 1 月 1 日至 2059 年 12 月 31 日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用…