os 模块的简述
os 模块是python 中与操作系统交互的核心模块之一,它提供了许多函数来操作文件、目录和运行环境。 下面是一些常用的os模块函数, 按功能分类整理如下:
目录操作
| 函数 |
描述 |
| os.getcwd() |
获取当前的工作目录 |
| os.chdir(path) |
改变当前工作目录到指定路径 |
| os.listdir(path= '.') |
列出指定目录下的所有文件和子目录 |
| os.mkdir(path) |
创建一个新目录(只能创建单层目录) |
| os.makedirs(path) |
创建多级目录(递归创建) |
| os.rmdir(path) |
删除一个空目录 |
| os.removedirs(path) |
递归删除目录树(目录必须为空) |
文件操作
| 函数 |
描述 |
os.rename(src, dst) |
将文件或目录从 src 重命名为 dst |
os.remove(path) |
删除指定的文件 |
os.unlink(path) |
等价于 os.remove(),删除文件 |
os.stat(path) |
获取文件状态信息(如大小、修改时间等) |
os.walk(top) |
遍历目录树,返回根目录、子目录列表、文件列表三元组 |
import os
for root, dirs, files in os.walk("my_folder"):
print(f"目录: {root}")
print("子目录:", dirs)
print("文件:", files)
路径操作(os.path 子模块)
os.path 是 os 模块中专门处理路径的子模块
| 函数 |
描述 |
os.path.abspath(path) |
返回路径的绝对路径 |
os.path.basename(path) |
返回路径中的文件名部分 |
os.path.dirname(path) |
返回路径中的目录部分 |
os.path.exists(path) |
判断路径是否存在 |
os.path.isfile(path) |
判断路径是否为文件 |
os.path.isdir(path) |
判断路径是否为目录 |
os.path.join(path1, path2, ...) |
拼接多个路径组件,自动使用平台正确的分隔符 |
os.path.splitext(path) |
分割文件名和扩展名 |
os.path.getsize(path) |
获取文件大小(字节) |
os.path.getmtime(path) |
获取文件最后修改时间(时间戳格式) |
系统相关操作
| 函数 |
描述 |
os.name |
获取操作系统名称('posix' 表示 Linux/macOS,'nt' 表示 Windows) |
os.environ |
获取环境变量(字典类型) |
os.getenv(key) |
获取某个环境变量值 |
os.putenv(key, value) |
设置环境变量 |
os.system(command) |
执行系统命令(如:os.system('ls') 或 os.system('dir')) |
os.urandom(n) |
生成 n 字节的随机字节(适用于加密) |
os.cpu_count() |
获取 CPU 核心数量 |
示例:常用组合用法
import os
# 获取当前脚本所在目录
script_dir = os.path.dirname(os.path.abspath(__file__))
os.chdir(script_dir)
# 列出当前目录内容
print("当前目录内容:")
for item in os.listdir():
if os.path.isfile(item):
print(f"文件: {item}")
else:
print(f"目录: {item}")
# 创建一个新目录
try:
os.mkdir("new_dir")
except FileExistsError:
print("目录已存在")
# 删除目录(如果存在)
if os.path.exists("new_dir") and os.path.isdir("new_dir"):
os.rmdir("new_dir")