OS库简单介绍

OS库简单介绍
最新回答
木木de守护神

2021-01-28 09:04:59

os模块是Python标准库中用于与操作系统进行交互的核心模块,提供了一系列跨平台的系统操作接口,涵盖文件/目录管理、环境变量访问、进程控制等功能。以下从功能分类角度介绍其核心特性及示例:

一、路径与文件操作
  • 获取当前工作目录os.getcwd() 返回当前脚本运行的绝对路径,适用于动态定位资源文件。示例:

    import osprint(os.getcwd()) # 输出如 'C:UsersAdministrator'
  • 路径格式转换os.fspath(path) 将路径对象(如pathlib.Path)转换为操作系统原生字符串格式,确保兼容性。示例:

    path_obj = pathlib.Path('C:/Users/1.png')print(os.fspath(path_obj)) # 输出 'C:Users1.png'
  • 文件/目录属性判断

    os.path.isfile(path):检查路径是否为文件。

    os.path.isdir(path):检查路径是否为目录。示例:

    print(os.path.isfile('test.txt')) # True/Falseprint(os.path.isdir('./docs')) # True/False
二、目录管理
  • 创建与删除目录

    os.mkdir(path):创建单级目录(若父目录不存在会报错)。

    os.makedirs(path):递归创建多级目录。

    os.rmdir(path):删除空目录(非空目录需先清空)。示例:

    os.mkdir('test_dir') # 创建单级目录os.makedirs('a/b/c') # 递归创建多级目录os.rmdir('test_dir') # 删除空目录
  • 遍历目录内容os.listdir(path) 返回指定目录下的文件和子目录名列表(不包含.和..)。示例:

    print(os.listdir('.')) # 输出当前目录内容,如 ['file.txt', 'subdir']
三、环境变量操作
  • 获取环境变量值os.getenv(key) 返回指定环境变量的值,若不存在则返回None(可设置默认值)。示例:

    path_value = os.getenv('PATH') # 获取系统PATH变量custom_var = os.getenv('MY_VAR', 'default_value') # 带默认值
  • 设置环境变量(临时)os.environ[key] = value 动态修改环境变量(仅当前进程有效)。示例:

    os.environ['TEMP'] = 'C:/temp' # 修改TEMP变量
四、进程与系统信息
  • 执行系统命令os.system(command) 执行Shell命令并返回退出状态码(0表示成功)。示例:

    os.system('dir') # Windows下列出目录内容os.system('ls -l') # Linux/macOS下详细列表
  • 获取进程时间统计os.times() 返回当前进程的用户态/内核态CPU时间及子进程时间(nt.times_result对象)。示例:

    print(os.times()) # 输出如 (user=0.1, system=0.05, ...)
  • 获取终端尺寸os.get_terminal_size() 返回终端窗口的列数和行数(os.terminal_size对象)。示例:

    size = os.get_terminal_size()print(f"终端尺寸: {size.columns}列×{size.lines}行")
  • 当前登录用户os.getlogin() 返回当前终端登录的用户名(Windows/Linux均支持)。示例:

    print(f"当前用户: {os.getlogin()}") # 输出如 'Administrator'
五、跨平台差异说明
  • 路径分隔符Windows使用反斜杠,Linux/macOS使用正斜杠/。建议使用os.path.join()拼接路径:

    path = os.path.join('folder', 'subfolder', 'file.txt') # 自动适配系统
  • 功能支持差异

    Linux/macOS支持更多底层操作(如os.fork()创建子进程)。

    Windows部分功能需通过os.name判断系统类型后调用替代方案。

六、扩展建议
  • 官方文档:详细用法参考
    Python OS模块文档
  • 替代模块

    pathlib:面向对象的路径操作(推荐Python 3.4+使用)。

    shutil:高级文件操作(如复制、移动)。

总结:os模块是Python系统交互的基石,通过统一接口屏蔽了不同操作系统的差异,适合处理文件管理、环境配置等任务。对于复杂场景,可结合pathlib或subprocess模块进一步优化代码可读性和功能扩展性。