前言:
os
模块是 Python 标准库中用于与操作系统交互的核心模块,提供了许多操作文件和目录的功能。以下是常见的使用方法:
1. 目录操作
方法 | 功能说明 | 示例 |
---|---|---|
os.getcwd() | 获取当前工作目录 | print(os.getcwd()) |
os.chdir(path) | 切换当前工作目录 | os.chdir("/tmp") |
os.listdir(path) | 列出目录下的文件和子目录 | files = os.listdir(".") |
os.mkdir(path) | 创建单层目录 | os.mkdir("new_dir") |
os.makedirs(path) | 递归创建多层目录 | os.makedirs("a/b/c") |
os.rmdir(path) | 删除空目录 | os.rmdir("empty_dir") |
os.removedirs(path) | 递归删除空目录 | os.removedirs("a/b/c") |
os.path.isdir(path) | 判断是否为目录 | if os.path.isdir("dir"): |
2. 文件操作
方法 | 功能说明 | 示例 |
---|---|---|
os.remove(path) | 删除文件 | os.remove("file.txt") |
os.rename(src, dst) | 重命名文件或目录 | os.rename("old.txt", "new.txt") |
os.path.exists(path) | 判断路径是否存在 | if os.path.exists("file"): |
os.path.isfile(path) | 判断是否为文件 | if os.path.isfile("file"): |
os.path.getsize(path) | 获取文件大小(字节) | size = os.path.getsize("file.txt") |
3. 路径操作(os.path
子模块)
方法 | 功能说明 | 示例 |
---|---|---|
os.path.join(a, b) | 拼接路径(跨平台兼容) | path = os.path.join("dir", "file.txt") |
os.path.abspath(path) | 获取绝对路径 | abs_path = os.path.abspath(".") |
os.path.dirname(path) | 获取目录部分 | dir = os.path.dirname("/tmp/file.txt") |
os.path.basename(path) | 获取文件名部分 | file = os.path.basename("/tmp/file.txt") |
os.path.split(path) | 拆分目录和文件名 | dir, file = os.path.split("/tmp/file.txt") |
案例1:通过os库方法获取平台信息
import os
# 1.os.set属性:获取本机操作系统的分隔符
print(os.sep) # \
# 2.os.name属性:获取本机操作系统的类型
print(os.name) # nt代表windows系统,posix代表Linux
# 3.os.getcwd()方法:获取当前工作目录
print(os.getcwd()) # D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject\第3章 使用os库操作目录及文件
案例2:通过os库方法对目录或文件进行增删改查
# 4.1 os.listdir() 方法:获取项目路径下所有文件和目录列表,并以列表的形式展示
print(os.listdir()) # ['1.os使用.py']
print(os.listdir("E:\\【书】【有用重要】2024软件测试接口自动化和UI自动化完整代码\\1.接口自动化 视频+ppt+源代码\\本书的学习流程.txt")) # 获取指定盘符下的所有文件和目录列表,并以列表形式展示
# 4.2 os.mkdir()方法创建目录文件
os.mkdir("testcase") # 当前路径下创建一个名为“testcase”的目录
os.mkdir("E:\\testcast")
# 4.3 os.rmdir()方法:删除一个空目录
os.rmdir("testcase") # 删除当前项目路径下空目录文件testcase
os.rmdir("E:\\testcast") # 删除指定路径下,空目录文件testcase
# 4.4 os.remove()方法:删除指定文件
os.remove("123.txt") # 删除当前项目路径下的"123.txt"文件
os.remove("E:\\data\\2.doc")
# 4.5 os.rename()方法:重命名目录或文件 os.rename("原目录名","新目录名")
os.rename("score002.txt","score001.txt")
案例3:通过os.path子模块来操作目录及文件
# 1.__file__特殊成员:返回当前文件的全路径
print(__file__) # D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject\第3章 使用os库操作目录及文件\1.os使用.py
# 2.os.path.dirname(__file__)方法:返回文件所在目录
print(os.path.dirname(__file__)) # D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject\第3章 使用os库操作目录及文件
print(os.path.dirname(os.path.dirname(__file__))) # 文件所在目录的上一级目录 D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject
# 3. os.path.abspath(__file__)方法:返回文件绝对路径
print(os.path.abspath(__file__)) # D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject\第3章 使用os库操作目录及文件\1.os使用.py
# 4.os.path.dirname(os.path.abspath(__file__)) 组合 :返回当前文件所在目录
print(os.path.dirname(os.path.abspath(__file__))) # D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject\第3章 使用os库操作目录及文件
# 5.os.path.json() 路径拼接 os.path.join(目录 + 文件名)
print(os.path.join(os.path.dirname(os.path.abspath(__file__)),"Test.py")) # D:\ProjectAndRepositories\PyCharmWorkspace\jiangchubook\requestProject\第3章 使用os库操作目录及文件\Test.py
# 6.os.path.exists() 判断路径是否存在
os.path.isfile()# 是否为文件
os.path.isdir() # 是否为目录conf_file = os.path.abspath(__file__) # 文件路径完整
conf_path = os.path.dirname(conf_file) # 文件目录
conf_file1 = os.path.join(conf_path,"score001.txt") # 目录+文件名,拼的文件完整路径
conf_path1 = os.path.dirname(os.path.dirname(conf_path)) # 上级目录
conf_file2 = conf_path1 + os.sep + "接口自动化" +os.sep+"score001.txt" # 系统分割符os.sep,拼完整路径os.path.exists(conf_file) # 存在
os.path.exists(conf_path) # 存在
os.path.isfile(conf_file1) # 是否为文件False, 拼的文件完整路径
os.path.isdir(conf_path1) # 是目录True
End