zoukankan      html  css  js  c++  java
  • python笔记-os模块

    一、简介

    本模块提供了一种使用与操作系统相关的功能的便捷式途径

    1. 如果你只是想读写一个文件,请参阅 open()
    2. 如果你想操作文件路径,请参阅 os.path 模块
    3. 如果你想读取通过命令行给出的所有文件中的所有行,请参阅 fileinput 模块
    4. 为了创建临时文件和目录,请参阅 tempfile 模块,对于高级文件和目录处理,请参阅 shutil 模块。

    关于这些函数的适用性的说明

    • Python中所有依赖于操作系统的内置模块的设计都是这样,只要不同的操作系统某一相同的功能可用,它就使用相同的接口。例如,函数 os.stat(path) 以相同的格式返回关于 path 的状态信息(该格式源于 POSIX 接口)
    • 特定于某一操作系统的扩展通过操作 os 模块也是可用的,但是使用它们当然是对可移植性的一种威胁
    • 所有接受路径或文件名的函数都同时支持字节串和字符串对象,并在返回路径或文件名时使用相应类型的对象作为结果。
    • 在 VxWorks 系统上,os.fork, os.execv 和 os.spawnp 不被支持

    二、文件操作

    1. os.open(path, flags, mode=0o777): 打开文件, 并返回文件描述符(整数)
      参数说明

      参数 含义 说明
      path 要打开文件的路径 1. 绝对路径
      2. 相对路径
      flags 打开文件的权限
      mode 权限值
    2. os.fdopen(fd): 返回打开文件描述符 fd 对应文件的对象。类似内建open()函数, 有相同的参数

    3. os.write(fd, str:bytes): 写入数据到文件, fd: 文件描述符, str: 写入到文件的字符串, 必须是bytes类型字符串

    4. os.read(fd, n: int): 从文件中读取n个字节数据, fd: 文件描述符

    5. os.close(fd): 关闭文件

    6. os.lseek(fd, __position, __how): 移动文件指针, fd文件描述符, __position: 相对于 __how偏移位置; __how: 文件指针的位置 0 文件开头 1 文件当前位置 2 文件末尾

    import os
    
    # 打开文件
    fd = os.open("test.txt", os.O_RDWR)
    file = os.fdopen(fd)  # 打开为文件对象, 其与内建`open()`返回的文件对象操作一致
    # 写入内容到文件
    os.write(fd, b"hello world
    ")
    # 读取文件中的内容 os.read(fd, n)
    print(os.read(fd, 5))
    # 关闭文件
    os.close(fd)
    

    三、获取系统信息

    1. os.name: 操作系统的名称, posix: Unix/Linux, nt: Windows

    2. os.uname(): 获取操作系统的基本信息(Windows不可用)

    3. os.environ: 字典, 包含系统中的环境变量

    4. os.stat(path): 返回path对应文件的状态

    四、目录相关

    4.1 os模块下目录的操作

    1. os.listdir(path): 列出path目录下的

    2. os.getcwd(): 获取当前工作目录

    3. os.chdir(path): 修改工作目录为path

    4. os.mkdir(path): 创建目录path

    5. os.makedirs(path): 递归创建目录

    6. os.rmdir(path): 删除空目录

    7. os.rmdirs(path): 递归删除目录

    8. os.rename(src,dst): 将src重命名为dst, des存在则会报错

    9. os.renames(old, new): 递归将old重命名为new

    10. os.replace(src, dst): 将文件或目录src重命名为dst

    4.2 os.path子模块下目录的操作

    1. os.path.abspath(path):返回路径path的绝对路径

    2. os.path.absename(path): 返回路径path的基本名称

    3. os.path.commonpath(paths): 返回paths中最长的共同部分

    4. os.path.commonprefix(list): 返回所有路径的最长公共前缀

    5. os.path.dirname(path): 返回路径path的目录名称

    6. os.path.exists(path): 判断目录或文件是否存在.

    7. os.path.getatime(path): 返回path的最后访问时间. 以时间戳表示

    8. os.path.getmtime(path): 返回path的最后修改时间

    9. os.path.getctime(path): 返回path的创时间

    10. os.path.getsize(path): 返回path的大小, 字节为单位

    11. os.path.isabs(path): 判断path是否为绝对路径

    12. os.path.isfile(path): 判断path是否为常规文件, 会跟中链接文件

    13. os.path.isdir(path): 判断path是否为目录

    14. os.path.islink(path): 判断path是否为链接文件

    15. os.path.ismount(path): 判断path是否为文件系统的挂载点

    16. os.path.join(path, *paths): 合理地拼接一个或多个路径部分

    17. os.path.normcase(path): 规范路径的大小写

    18. os.path.normpath(path): 折叠多余的分隔符和对上级目录的引用来标准化路径名

    19. os.path.realpath(path): 返回指定文件的规范路径,消除路径中存在的任何符号链接(如果操作系统支持)

    20. os.path.relpath(path, start=os.curdir): 返回从当前目录或 start 目录(可选)到达 path 之间要经过的相对路径

    21. os.path.samefile(path1, path2): 判断两个路径是否指向同一个文件

    22. os.path.sameopenfile(fp1, fp2): 判断两个文件描述符打开的是否为同一个文件

    23. os.path.split(path): 将路径 path 拆分为一对,即 (head, tail),其中,tail 是路径的最后一部分,而 head 里是除最后部分外的所有内容。tail 部分不会包含斜杠,如果 path 以斜杠结尾,则 tail 将为空.

    24. os.path.splitdrive(path): 将路径 path 拆分为一对,即 (drive, tail),其中 drive 是挂载点或空字符串

    25. os.path.splitext(path): 将路径 path 拆分为一对,即 (root, ext), 使 root + ext == path,其中 ext 为空或以英文句点开头,且最多包含一个句点

  • 相关阅读:
    UVA
    UVA
    模板——扩展欧几里得算法(求ax+by=gcd的解)
    UVA
    模板——2.2 素数筛选和合数分解
    模板——素数筛选
    Educational Codeforces Round 46 (Rated for Div. 2)
    Educational Codeforces Round 46 (Rated for Div. 2) E. We Need More Bosses
    Educational Codeforces Round 46 (Rated for Div. 2) D. Yet Another Problem On a Subsequence
    Educational Codeforces Round 46 (Rated for Div. 2) C. Covered Points Count
  • 原文地址:https://www.cnblogs.com/duyupeng/p/13175320.html
Copyright © 2011-2022 走看看