Python os 模块函数速查

获取/切换工作目录

os.getcwd() 返回当前工作目录的绝对路径。

os.chdir(path) 将当前工作目录改为 path 指定的目录。

import os

# 当前工作目录
print("当前目录:", os.getcwd())

# 切换到上一级目录
os.chdir('..')
print("切换后:", os.getcwd())
        

列出目录内容

os.listdir(path='') 返回 path(默认当前目录)下所有文件和子目录的名称列表。

import os

files = os.listdir('.')          # 当前目录
print("文件列表:", files)

sub = os.listdir('/tmp')         # 指定目录
print("/tmp 内容:", sub)
        

创建目录

os.mkdir(path, mode=0o777) 创建单层目录。

os.makedirs(name, mode=0o777, exist_ok=False) 递归创建多层目录。

import os

# 创建单层目录
os.mkdir('demo_dir')

# 递归创建多层目录
os.makedirs('demo_dir/sub1/sub2', exist_ok=True)
        

删除目录/文件

os.rmdir(path) 删除空目录。

os.removedirs(path) 递归删除空目录链。

os.remove(path) 删除文件。

import os

# 删除文件
os.remove('demo_dir/sub1/sub2/file.txt')

# 删除空目录
os.rmdir('demo_dir/sub1/sub2')
os.removedirs('demo_dir/sub1')
        

重命名/移动文件或目录

os.rename(src, dst)src 重命名为 dst,也可用于移动。

import os

# 重命名文件
os.rename('old_name.txt', 'new_name.txt')

# 移动文件
os.rename('new_name.txt', 'subdir/new_name.txt')
        

路径操作(os.path)

os.path.join(*paths) 按操作系统分隔符安全拼接路径。

os.path.exists(path) 判断路径是否存在。

os.path.isdir(path) / os.path.isfile(path) 判断路径类型。

import os

p = os.path.join('folder', 'sub', 'file.txt')
print("拼接路径:", p)

if os.path.exists(p):
    if os.path.isfile(p):
        print("是文件")
    elif os.path.isdir(p):
        print("是目录")
else:
    print("路径不存在")
        

遍历目录树

os.walk(top, topdown=True, onerror=None, followlinks=False) 递归遍历目录,返回 (dirpath, dirnames, filenames)。

import os

for root, dirs, files in os.walk('.'):
    print('目录:', root)
    for d in dirs:
        print('  子目录:', d)
    for f in files:
        print('  文件:', f)
        

执行系统命令

os.system(command) 在子 shell 中执行 command,返回退出码。

import os

code = os.system('echo Hello World')
print('退出码:', code)
        

环境变量

os.getenv(key, default=None) 获取环境变量值。

os.environ 直接操作环境变量的映射对象(读取/写入)。

import os

home = os.getenv('HOME')
print('HOME:', home)

# 设置新变量
os.environ['MY_VAR'] = '12345'
print('MY_VAR:', os.getenv('MY_VAR'))
        

帮助快速掌握常用的 os 模块功能。