Skip to content

Os模块

os模块

简介

Python 的内置库 os(Operating System Interface 提供了与操作系统交互的函数,允许用户与操作系统进行各种操作,如文件和目录操作、环境变量访问、进程管理等。

使用 os 库,您可以编写跨平台的代码,因为它提供了对操作系统底层功能的抽象,而不用担心特定操作系统的细节。

路径操作

  • os.getcwd():获取当前目录的路径

    import os
    directory = os.getcwd()
    print("当前目录:", directory)
    
  • os.chdir():用于改变当前的工作目录。

    工作目录是指当前正在执行的脚本所在的目录,通过使用 os.chdir()方法,可以在脚本执行过程中切换到不同的目录。

    import os
    # 当前工作目录
    print("当前工作目录:", os.getcwd())
    
    # 切换到指定目录
    os.chdir("/path/to/directory")
    
    # 切换后的工作目录
    print("切换后的工作目录:", os.getcwd())
    
path 方法 说明
os.path.abspath(path) 返回绝对路径
os.path.basename(path) 返回文件名
os.path.dirname(path) 返回文件路径
os.path.split(path) 分割路径
os.path.join(path) 拼接路径
os.path.exists(path) 判断路径是否存在
os.path.isdir(path) 判断是否是目录
os.path.isfile(path) 判断是否是文件
os.path.getsize(path) 获取文件大小
  • os.path.abspath(path):获取绝对路径。path 是要获取绝对路径的路径。

    import os
    # 获取绝对路径
    absolute_path = os.path.abspath('relative/path/to/file.txt')
    print("Absolute Path:", absolute_path)
    
  • os.path.basename(path):返回指定路径的基本名称(不包含父目录路径)

    import os
    
    # 获取基本名称
    base_name = os.path.basename('/path/to/file.txt')
    print("Base Name:", base_name)
    
  • os.path.dirname(path):返回指定路径的父目录路径。

    import os
    
    # 获取父目录路径
    parent_directory = os.path.dirname('/path/to/file.txt')
    print("父目录为:", parent_directory)
    
  • os.path.split(path):用于将一个路径拆分为目录部分和文件名部分。

    import os
    
    path = '/home/user/file.txt'
    result = os.path.split(path)
    print(result)
    
  • os.path.join(path):用于连接多个路径部分。它将多个路径片段组合在一起,形成一个新的路径字符串。

    import os
    
    path1 = '\home\user'
    path2 = 'file.txt'
    result = os.path.join(path1, path2)
    print(result)
    
  • os.path.exists(path) 判断路径是否存在(可以是文件或目录)

    import os
    
    # 判断路径是否存在
    path_to_check = '/path/to/file.txt'
    if os.path.exists(path_to_check):
        print("路径存在")
    else:
        print("路径不存在")
    
  • os.path.isdir(path) 判断是否是目录

    import os
    
    # 判断路径是否是目录
    directory_path = '/path/to/directory'
    if os.path.isdir(directory_path):
        print("它是一个目录")
    else:
        print("它不是一个目录或路径不存在")
    
  • os.path.isfile(path) 判断是否是文件

    import os
    
    # 判断路径是否是文件
    file_path = '/path/to/file.txt'
    if os.path.isfile(file_path):
        print("它是一个文件")
    else:
        print("它不是文件或路径不存在.")
    
  • os.path.getsize(path) 获取文件大小

    import os
    print(os.path.getsize("main.py"))
    

目录和文件操作

  • os.listdir():列出当前目录内容

    import os
    
    # 获取目录内容
    directory_path = '/path/to/directory'
    content = os.listdir(directory_path)
    print("Directory Content:", content)
    
  • os.mkdir():创建一个新目录

    import os
    
    # 创建新目录
    new_directory = '/path/to/new_directory'
    os.mkdir(new_directory)
    
  • os.makedirs():递归创建多级目录

    # 创建多级目录
    nested_directory = '/path/to/nested/directory'
    os.makedirs(nested_directory)
    
  • os.rmdir():删除空目录

    import os
    
    # 删除目录
    directory_to_delete = '/path/to/directory_to_delete'
    os.rmdir(directory_to_delete)
    
  • os.rename():重命名目录

    import os
    
    # 重命名目录
    old_directory_name = '/path/to/old_directory'
    new_directory_name = '/path/to/new_directory'
    os.rename(old_directory_name, new_directory_name)
    
  • os.remove():删除文件(只能删除文件,不能删除目录)

    import os
    
    # 删除指定的文件
    file_to_delete = '/path/to/file.txt'
    os.remove(file_to_delete)
    

其它操作

  • os.name:获取系统名称,在Windows上,os.name 值为 nt。在Linux、macOS,os.nameposix

    import os
    
    # 获取当前平台名称
    platform_name = os.name
    print("Platform Name:", platform_name)
    
  • os.chmod(path, mode):更改文件权限模式。 path 是要更改权限的文件路径,mode 是权限模式,通常用八进制表示,如 0o755

    import os
    
    # 更改文件权限模式为-rwxr-xr-x
    file_path = '/path/to/file.txt'
    os.chmod(file_path, 0o755)
    
  • os.sep:用于表示操作系统特定的路径分隔符。在Windows操作系统上,路径分隔符是反斜杠 \ ;而在POSIX系统(如Linux、macOS等)上,路径分隔符是正斜杠 /

    import os
    
    # 获取路径分隔符
    path_separator = os.sep
    print("Path Separator:", path_separator)