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): 关闭文件

import os

# 打开文件
fd = os.open("test.txt", os.O_RDWR)
file = os.fdopen(fd)  # 打开为文件对象, 其与内建`open()`返回的文件对象操作一致
# 写入内容到文件
os.write(fd, b"hello world\n")
# 读取文件中的内容 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 为空或以英文句点开头,且最多包含一个句点

猜你喜欢

转载自www.cnblogs.com/duyupeng/p/13175320.html