Python 常用运维模块之OS模块篇

Python 常用运维模块之OS模块篇

  • OS 模块
  • 获取当前工作目录
  • 更改当前工作目录
  • 返回当前目录路径
  • 返回上一级目录路径
  • 递归生成目录路径
  • 删除目录
  • 创建目录
  • 删除目录
  • 列出特定目录下文件和子目录
  • 删除某个特定文件
  • 重命名某个文件
  • 获取某个文件/目录的信息
  • 输出目录路径分隔符
  • 输出文件行终止符
  • 输出用于分隔文件路径的字符串
  • 输出当前操作系统的名称
  • 获取当前系统的环境变量
  • 判断是否有权限执行操作
  • 修改文件的权限
  • 修改文件的属主和属组
  • 创建软连接
  • 获取系统进程运行时间
  • OS 模块

    使用os模块之前需要导入

    import os
    

    获取当前工作目录

    也就是当前python脚本所在的目录
    os.getcwd() 用于获取当前工作目录的路径
    例如,如果脚本位于 /home/user 目录下,运行此代码会输出 /home/user

    print(os.getcwd())
    

    更改当前工作目录

    切换脚本所在的目录,类似于cd命令
    os.chdir() 用于更改当前工作目录
    如果路径不存在,会抛出 FileNotFoundError

    os.chdir("/path/to/new/directory")
    print(os.getcwd())  # 验证当前目录是否已更改
    

    返回当前目录路径

    os.curdir 返回当前目录的相对路径,通常是 .

    print(os.curdir)  # 输出当前目录的相对路径
    

    返回上一级目录路径

    os.pardir 返回上一级目录的相对路径,通常是

    print(os.pardir)  # 输出上一级目录的相对路径
    

    递归生成目录路径

    os.makedirs() 可以递归创建多级目录
    如果目录已存在,会抛出 FileExistsError

    os.makedirs("dir1/dir2")
    print(os.listdir())  # 验证目录是否创建成功
    

    删除目录

    如果其中有文件,则递归删除
    os.removedirs() 递归删除空目录
    如果目录不为空,会抛出 OSError

    os.removedirs("dir1/dir2")
    print(os.listdir())  # 验证目录是否删除
    

    创建目录

    不支持递归生成目录
    os.mkdir() 创建单级目录
    如果目录已存在,会抛出 FileExistsError

    os.mkdir("new_dir")
    print(os.listdir())  # 验证目录是否创建成功
    

    删除目录

    若目录不为空则无法删除、报错
    相当于 shell 中的 rmdir
    os.rmdir() 删除空目录
    如果目录不为空,会抛出 OSError

    os.rmdir("new_dir")
    print(os.listdir())  # 验证目录是否删除
    

    列出特定目录下文件和子目录

    os.listdir() 列出指定目录下的所有文件和子目录,不包括子目录中的内容

    print(os.listdir("/path/to/directory"))
    

    删除某个特定文件

    os.remove() 删除指定文件
    如果文件不存在,会抛出 FileNotFoundError

    os.remove("file.txt")
    

    重命名某个文件

    os.rename() 用于重命名文件或目录
    如果目标文件已存在,会抛出 FileExistsError

    os.rename("old_file.txt", "new_file.txt")
    

    获取某个文件/目录的信息

    os.stat() 返回文件或目录的详细信息,包括大小、权限、修改时间

    import os
    info = os.stat("file.txt")
    print(info)
    

    输出目录路径分隔符

    可以用于处理不同平台之间的差异
    os.sep 是路径分隔符
    Windows 系统中是 **
    LinuxmacOS 系统中是 /

    print(os.sep)  # 输出路径分隔符
    

    输出文件行终止符

    可以用于处理不同平台之间的差异
    os.linesep 是行终止符
    Windows 系统中是 \r\n
    LinuxmacOS 系统中是 \n

    print(repr(os.linesep))  # 输出行终止符
    

    输出用于分隔文件路径的字符串

    可以用于处理不同平台之间的差异
    os.pathsep 是环境变量中路径分隔符
    Windows 系统中是 ;
    LinuxmacOS 系统中是 :

    print(os.pathsep)  # 输出路径分隔符
    

    输出当前操作系统的名称

    可以用于处理不同平台之间的差异
    os.name 返回当前操作系统的名称

    print(os.name)  # 输出操作系统名称
    

    获取当前系统的环境变量

    os.environ 是一个包含所有环境变量的字典
    os.environ.get() 可以获取特定环境变量的值

    print(os.environ)  # 输出所有环境变量
    print(os.environ.get("PATH"))  # 获取特定环境变量
    

    判断是否有权限执行操作

    os.access() 检查指定路径是否有指定权限
    os.R_OK 表示读权限
    os.W_OK 表示写权限

    print(os.access("file.txt", os.R_OK))  # 判断是否有读权限
    print(os.access("file.txt", os.W_OK))  # 判断是否有写权限
    

    修改文件的权限

    os.chmod() 修改文件的权限,权限值以八进制表示
    例如, 0o755 表示所有者有读写执行权限,组和其他用户有读执行权限

    os.chmod("file.txt", 0o755)  # 修改文件权限为 755
    

    修改文件的属主和属组

    os.chown() 修改文件的属主和属组
    uidgid 分别是用户 ID 和组 ID
    此功能仅在 Unix 系统中可用

    os.chown("file.txt", uid, gid)  # 修改文件的属主和属组
    

    创建软连接

    os.symlink() 创建一个软链接,指向源文件
    如果目标文件已存在,会抛出 FileExistsError

    os.symlink("source.txt", "link.txt")  # 创建软链接
    

    获取系统进程运行时间

    os.times() 返回一个包含进程运行时间的元组,包括用户时间、系统时间等

    print(os.times())  # 输出进程运行时间
    

    作者:阿俊仔(摸鱼版)

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python 常用运维模块之OS模块篇

    发表回复