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

ops/2025/1/24 1:13:10/

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/ops/152606.html

相关文章

1905电影网中国地区电影数据分析(一) - 数据采集、清洗与存储

文章目录 前言一、数据采集步骤及python库使用版本1. python库使用版本2. 数据采集步骤 二、数据采集网页分析1. 分析采集的字段和URL1.1 分析要爬取的数据字段1.2 分析每部电影的URL1.2 分析每页的URL 2. 字段元素标签定位 三、数据采集代码实现1. 爬取1905电影网分类信息2. 爬…

Yii框架中的路由配置:如何实现URL美化

在Yii框架中,路由配置是通过URL管理器(UrlManager)来实现的,而URL美化则是路由配置的一个重要应用。以下是如何在Yii框架中实现URL美化的具体步骤: 一、URL管理器配置 启用美化URL: 在Yii框架的配置文件…

Matlab实现TCN-LSTM时间卷积神经网络结合长短期记忆神经网络多特征分类预测(附模型研究报告)

Matlab实现TCN-LSTM时间卷积神经网络结合长短期记忆神经网络多特征分类预测(附模型研究报告) 目录 Matlab实现TCN-LSTM时间卷积神经网络结合长短期记忆神经网络多特征分类预测(附模型研究报告)分类效果基本描述程序设计参考资料 分…

【图像处理】——掩码

一、掩码的定义与本质 掩码是一种与原始数据(通常是图像或矩阵)具有相同形状的数组或矩阵,其元素用于控制对原始数据的操作。它本质上是一种筛选或过滤机制,通过对原始数据的每个元素与掩码中相应元素的组合操作,来决…

Ubuntu实时核编译安装与NVIDIA驱动安装教程(ubuntu 22.04,20.04)

1.编译前的准备(该部分操作在非实时核下) a.安装依赖项 sudo apt-get install build-essential bc curl ca-certificates gnupg2 libssl-dev lsb-release libelf-dev bison flex dwarves zstd libncurses-dev b.下载实时核文件 1.查看非实时核版本 2.在https://www.kernel.…

windows下本地部署安装hadoop+scala+spark-【不需要虚拟机】

注意版本依赖【本实验版本如下】 Hadoop 3.1.1 spark 2.3.2 scala 2.11 1.依赖环境 1.1 java 安装java并配置环境变量【如果未安装搜索其他教程】 环境验证如下: C:\Users\wangning>java -version java version "1.8.0_261" Java(TM) SE Runti…

Go学习:多个变量或常量定义

目录 1. 不同类型变量的声明(定义) 2. 不同类型常量的声明(定义) 1. 不同类型变量的声明(定义) 传统方法 //不同类型变量的声明(定义) var a int var b float64 a, b 10,…

0164__【GNU】gcc -O编译选项 -Og -O0 -O1 -O2 -O3 -Os

【GNU】gcc -O编译选项 -Og -O0 -O1 -O2 -O3 -Os_gcc -o0-CSDN博客