跳转至

os

属性

  • os.name 操作系统的类型,Windows 为 nt,Linux 为 posix
  • os.environ 环境变量,返回一个字典
  • os.sep 当前平台的路径分隔符,Windows 为 \\,Linux 为 /
  • os.extsep 扩展名分隔符
  • os.pathsep 当前平台环境变量不同路径之间的分隔符,Windows 为 ;,Linux 为 :
  • os.linesep 当前平台的行分隔符,Windows 为 \r\n,Linux 为 \n


更改与查看路径

  • os.chdir(path) 改变当前路径
  • os.getcwd() 得到当前路径


列出文件

  • os.listdir(path=None) 列出指定路径下的所有文件,默认为当前路径
  • os.walk(top, topdown=True, onerror=None, followlinks=False) 返回一个文件树生成器,里面的元素的形式为 (当前路径, 当前路径下的文件夹名列表, 当前路径下的文件名列表)


创建与删除文件夹

  • os.mkdir(path, *, dir_fd=None) 创建文件夹,若已存在会报错
  • os.makedirs(name) 创建文件夹,会连带创建所有的中间文件夹,若已存在会报错
  • os.rmdir(path, *, dir_fd=None) 删除文件夹,若文件夹内不为空会报错
  • os.removedirs(name) 删除文件夹,并删除所有的中间文件夹,除非中间文件夹内有其他文件,若底层文件夹不为空会报错


删除与重命名文件

  • os.remove(path, *, dir_fd=None) 删除文件,若不存在会报错
  • os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None) 重命名文件或文件夹,若目标位置不存在会报错,在 Windows 下若目标路径已存在会报错
  • os.renames(old, new) 重命名文件或文件夹,若目标位置不存在会创建路径,在 Windows 下若目标路径已存在会报错
  • os.replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None) 重命名文件或文件夹,若目标位置不存在会报错,若目标路径已存在会覆盖


创建链接

  • os.link(src, dst) 创建一个硬链接,目标只能是文件
  • os.symlink(src, dst, target_is_directory=False) 创建一个符号链接


执行命令

  • os.system(command) 在一个子进程中执行命令并返回状态码,父进程会阻塞
  • os.popen(cmd, mode='r', buffering=-1) 创建一个管道并执行命令
    • pipe = os.popen("ls"); result = pipe.read()


切割与合并路径

  • os.path.abspath(path) 返回绝对路径
  • os.path.basename(path) 返回最后一个路径分割符之后的内容
  • os.path.dirname(path) 返回最后一个路径分割符之前的内容
  • os.path.split(p) 返回最后一个路径分割符前后的内容,形式为 (head, tail)
  • os.path.splitext(p) 返回扩展名分割符前后的内容,形式为 (root, ext),扩展名会包含 .
  • os.path.join(path, *paths) 将多个路径连接在一起,若最后一项为空,结果末尾会加上分隔符


判断文件与文件夹属性

  • os.path.exists(path) 判断是否存在
  • os.path.isabs(s) 判断是否是绝对路径
  • os.path.isdir(s) 判断是否是文件夹
  • os.path.isfile(path) 判断是否是文件
  • os.path.islink(path) 判断是否是符号链接


查看与修改文件权限

  • os.access(path, mode) 查看是否存在或查看权限
    • os.F_OK 存在
    • os.R_OK 可读
    • os.W_OK 可写
    • os.X_OK 可执行
  • os.chmod(path, mode) 修改文件权限
    • stat.S_IREAD 所有者读权限
    • stat.S_IWRITE 所有者写权限
    • stat.S_IEXEC 所有者执行权限
    • stat.S_IRUSR 所有者读权限
    • stat.S_IWUSR 所有者写权限
    • stat.S_IXUSR 所有者执行权限
    • stat.S_IRWXU 所有者全部权限
    • stat.S_IRGRP 组用户读权限
    • stat.S_IWGRP 组用户写权限
    • stat.S_IXGRP 组用户执行权限
    • stat.S_IRWXG 组用户全部权限
    • stat.S_IROTH 其他用户读权限
    • stat.S_IWOTH 其他用户写权限
    • stat.S_IXOTH 其他用户执行权限
    • stat.S_IRWXO 其他用户全部权限