### Python 模块介绍 #### 一、OS模块概述 Python 的 `os` 模块提供了许多用于与操作系统交互的功能。这些功能包括读写文件、更改和识别路径、执行系统命令等。`os` 模块是Python标准库的一部分,不需要额外安装。 #### 二、OS模块基本使用 要使用 `os` 模块,首先需要通过 `import os` 来导入它。下面我们将详细介绍一些常用的 `os` 模块函数及其应用。 #### 三、获取当前工作目录 (getcwd) `os.getcwd()` 方法用来获取当前的工作目录,默认情况下这个目录通常是运行脚本所在的目录。例如: ```python import os result = os.getcwd() print(result) # 输出当前工作目录 ``` #### 四、改变当前工作目录 (chdir) 使用 `os.chdir()` 方法可以改变当前的工作目录。例如: ```python os.chdir('/home/sy') result = os.getcwd() print(result) # 输出更改后的工作目录 ``` #### 五、文件操作 - **创建文件**:可以通过 `open()` 函数创建新文件。 ```python open('02.txt', 'w') ``` - **指定路径操作**:如果指定了完整的路径,则不需要考虑当前工作目录的问题。 ```python open('/home/sy/下载/02.txt', 'w') ``` #### 六、获取目录列表 (listdir) `os.listdir()` 方法可以获取指定目录下的所有文件和子目录名。例如: ```python result = os.listdir('/home/sy') print(result) # 输出目录列表 ``` #### 七、创建文件夹 (mkdir/makedirs) - **单层目录创建**:使用 `os.mkdir()` 创建单层目录。 ```python # os.mkdir('girls') # 创建girls目录 # os.mkdir('boys', 0o777) # 创建boys目录,并设置权限 ``` - **多层目录创建**:使用 `os.makedirs()` 递归创建多层目录。 ```python os.makedirs('/home/sy/a/b/c/d') ``` #### 八、删除目录 (rmdir/removedirs) - **删除单个空目录**:使用 `os.rmdir()` 删除空目录。 ```python # os.rmdir('girls') # 删除girls目录 ``` - **递归删除空目录**:使用 `os.removedirs()` 递归删除多个空目录。 ```python # os.removedirs('/home/sy/a/b/c/d') ``` #### 九、重命名文件或目录 (rename) `os.rename()` 方法用于重命名文件或目录。例如: ```python # os.rename('/home/sy/a', '/home/sy/alibaba') # 将a重命名为alibaba # os.rename('02.txt', '002.txt') # 将02.txt重命名为002.txt ``` #### 十、获取文件或目录信息 (stat) `os.stat()` 方法可以获取文件或目录的详细信息。例如: ```python # result = os.stat('/home/sy/PycharmProject/Python3/10.27/01.py') # print(result) # 输出文件信息 ``` #### 十一、执行系统命令 (system) `os.system()` 可以执行系统命令,但需要注意安全问题。例如: ```python # result = os.system('ls -al') # 获取当前目录下的所有文件(包括隐藏文件) # print(result) # 输出执行结果 ``` #### 十二、环境变量操作 - **获取环境变量**:使用 `os.getenv()` 获取系统环境变量。 ```python result = os.getenv('PATH') print(result.split(':')) # 输出环境变量中的路径列表 ``` - **修改环境变量**:使用 `os.putenv()` 修改环境变量(临时生效)。 ```python # os.putenv('PATH', '/home/sy/下载') # os.system('ls') # 这里应该使用正确的命令来测试环境变量是否被正确设置 ``` #### 十三、其他常用值 - **当前目录**:`os.curdir` 表示当前目录,通常可以省略。 ```python print(os.curdir) # 输出'.' ``` - **父级目录**:`os.pardir` 表示父级目录,不能省略。 ```python print(os.pardir) # 输出'..' ``` - **操作系统名称**:`os.name` 可以获取操作系统名称,如 `'posix'` 表示 Linux 或 Unix 系统,`'nt'` 表示 Windows 系统。 ```python print(os.name) # 输出操作系统名称 ``` - **路径分隔符**:`os.sep` 获取系统路径分隔符,Windows 使用 `\`,Linux 使用 `/`。 ```python print(os.sep) # 输出路径分隔符 ``` - **文件扩展名分隔符**:`os.extsep` 获取文件名称和后缀之间的分隔符,对于 Windows 和 Linux 都是 `'.'`。 ```python print(os.extsep) # 输出扩展名分隔符 ``` - **换行符**:`os.linesep` 获取操作系统的换行符,Windows 是 `\r\n`,Linux 和 Unix 是 `\n`。 ```python print(repr(os.linesep)) # 输出换行符 ``` #### 十四、os.path 子模块 `os.path` 子模块提供了一些有用的文件路径处理函数。 - **转换为绝对路径**:`os.path.abspath()` 可以将相对路径转换为绝对路径。 ```python path = './boys' result = os.path.abspath(path) print(result) # 输出绝对路径 ``` - **获取目录和文件名**:`os.path.dirname()` 和 `os.path.basename()` 分别获取完整路径中的目录部分和文件名部分。 ```python path = '/home/sy/boys' result = os.path.dirname(path) print(result) # 输出目录部分 result = os.path.basename(path) print(result) # 输出文件名部分 ``` - **分割路径**:`os.path.split()` 可以将路径分割为目录和文件两部分。 ```python path = '/home/sy/boys' result = os.path.split(path) print(result) # 输出目录和文件名 ``` - **合并路径**:`os.path.join()` 可以将两个路径合并为一个。 ```python var1 = '/home/sy' var2 = '000.py' result = os.path.join(var1, var2) print(result) # 输出合并后的路径 ``` - **分割扩展名**:`os.path.splitext()` 可以将文件路径分为文件名和扩展名两部分。 ```python path = '/home/sy/000.py' result = os.path.splitext(path) print(result) # 输出文件名和扩展名 ``` 以上是 `os` 模块的一些基础使用方法。掌握这些方法可以帮助你更高效地处理文件和目录,实现自动化脚本编写等功能。
剩余63页未读,继续阅读
- 粉丝: 35
- 资源: 31
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 光伏逆变器设计方案TMS320F28335-176资料 PCB 原理图 源代码 1. 本设计DC-DC采用Boost升压,DCAC采用单相全桥逆变电路结构 2. 以TI公司的浮点数字信号控制器TMS
- 通讯录排序-基于Python实现的通讯录多维度排序方法
- 全志V3S linux qt程序实现按键控制LED灯代码.zip
- allwinner全志-V3S-LINUX-QT-实现RJ45以太网数据收发通讯.zip
- allwinner全志-V3S-LINUX-QT-第一个程序实现helloword.zip
- 扑克牌数字检测19-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- allwinner全志-V3S-LINUX-QT-GC0308摄像头实现人脸检测-MTCNN神经网络-OPENCV-FACENET.zip
- 毕业设计-基于SpringBoot+Mybatis开发的分布式校园租赁系统全部资料+详细文档+高分项目.zip
- 毕业设计-基于java的校园二手交易系统全部资料+详细文档+高分项目.zip
- 毕业设计-基于Hadoop的校园资源云存储的设计与开发全部资料+详细文档+高分项目.zip
- 毕业设计-基于tp5的校园生活系统全部资料+详细文档+高分项目.zip
- 毕业设计-基于SpringBoot的二手商城系统、二手交易平台,校园二手书籍交易,社区二手交易平台全部资料+详细文档+高分项目.zip
- 基于 Next.js(RSC) & tRPC 的多功能校园表白墙论坛系统校园万能墙全部资料+详细文档+高分项目.zip
- 基于 Laravel 校园二手交易平台全部资料+详细文档+高分项目.zip
- 基于 微信小程序-云开发 的校园服务平台(提供二手交易和失物招领功能)全部资料+详细文档+高分项目.zip
- 基于 React Native 的校园社交APP.全部资料+详细文档+高分项目.zip