Python 中 os 操作系统接口模块开发
Python 中 os 操作系统接口模块
1. 与工作路径相关
os.chdir(path)
将当前工作目录更改为 path
os.getcwd()
返回表示当前工作目录的字符串
2. 与文件目录相关
2.1 查
os.listdir(path='.')
返回一个列表,该列表包含了 path 中所有文件与目录的名称。该列表按任意顺序排列,并且不包含特殊条目 ‘.’ 和 ‘…’,即使它们确实在目录中存在
os.scandir(path='.')
返回一个迭代出 os.DirEntry 对象的迭代器,这些对象对应于 path 目录中的条目。条目的生成顺序是任意的,特殊条目 ‘.’ 和 ‘…’ 不包括在内。
with os.scandir(path) as it:
for entry in it:
print(entry.name)
print(entry.path)
print(entry.is_dir())
print(entry.is_file())
print(entry.stat())
os.DirEntry 中:
- name:本条目的基本文件名,是根据 scandir() 的 path 参数得出的相对路径。
- path:本条目的完整路径。
- is_dir():如果本条目是目录,或是指向目录的符号链接,则返回 True。如果本条目是文件,或指向任何其他类型的文件,或该文件不再存在,则返回 False。
- is_file():如果本条目是文件,或是指向文件的符号链接,则返回 True。如果本条目是目录,或指向目录,或指向其他非文件条目,或该文件不再存在,则返回 False。
- stat():返回本条目对应的 stat_result 对象。
os.stat(path + "a.txt")
取文件或文件描述符的状态。在所给路径上执行等效于 stat() 系统调用的操作。path 可以是字符串类型,或(直接/间接由 PathLike 接口返回的) bytes 类型,或打开的文件描述符。返回一个 stat_result 对象。
stat_result 对象的主要参数:
- st_mode: 文件模式:包括文件类型和文件模式位(即权限位)。
- st_ino: 与平台有关,但如果不为零,则根据 st_dev 值唯一地标识文件。通常:在 Unix 上该值表示索引节点号 (inode number)。在 Windows 上该值表示 文件索引号 。
- st_dev: 该文件所在设备的标识符。
- st_nlink: 硬链接的数量。
- st_uid: 文件所有者的用户 ID。
- st_gid: 文件所有者的用户组 ID。
- st_size: 文件大小(以字节为单位),文件可以是常规文件或符号链接。符号链接的大小是它包含的路径的长度,不包括末尾的空字节。
- st_atime: 最近的访问时间,以秒为单位。
- st_mtime: 最近的修改时间,以秒为单位。
- st_ctime: 取决于平台: 在 Unix 上表示最近的元数据更改时间, 在 Windows 上表示创建时间,以秒为单位。
2.2 增
os.mkdir(path + "ee", mode=0o777)
创建一个名为 path 的目录,应用以数字表示的权限模式 mode。如果目录已存在,则抛出 FileExistsError 异常。
os.makedirs(path + "aa/aa/aa", mode=0o777, exist_ok=False)
递归目录创建函数。与 mkdir() 类似,但会自动创建到达最后一级目录所需要的中间目录。
2.3 改
os.rename(path + "cc", path + "aa")
将文件或目录 src 重命名为 dst。如果 dst 已存在,则下列情况下将会操作失败,并抛出 OSError 的子类; 在 Windows 上,如果 dst 已存在,则抛出 FileExistsError 异常。
os.renames(path + "aa/aa/aa", path + "bb/bb/bb")
递归重命名目录或文件。工作方式类似 rename(),除了会首先创建新路径所需的中间目录。重命名后,将调用 removedirs() 删除旧路径中不需要的目录。
os.replace(path + "bb/bb/bb/b.txt", path + "bb/bb/bb/b.txt")
将文件或目录 src 重命名为 dst。如果 dst 是目录,将抛出 OSError 异常。如果 dst 已存在且为文件,则在用户具有权限的情况下,将对其进行静默替换。
2.4 删
os.remove(path + "a.txt")
移除(删除)文件 path。如果 path 是目录,则抛出 IsADirectoryError 异常。请使用 rmdir() 删除目录。
os.removedirs(path + "dd")
递归删除目录。工作方式类似于 rmdir(),不同之处在于,如果成功删除了末尾一级目录,removedirs() 会尝试依次删除 path 中提到的每个父目录
该目录下不能有目录和文件,否则会报错
os.rmdir(path + "aa")
移除(删除)目录 path。如果目录不存在或不为空,则会分别抛出 FileNotFoundError 或 OSError 异常。要删除整个目录树,可以使用 shutil.rmtree()。
该目录下不能有目录和文件,否则会报错
3. 与配置相关
os.name
导入的依赖特定操作系统的模块的名称, 以下名称目前已注册: ‘posix’, ‘nt’, ‘java’.
os.fspath(path + "a.txt")
返回路径的文件系统表示。
os.system("python -V")
在子 shell 中执行命令(字符串)
os.getlogin()
返回通过控制终端进程进行登录的用户名。
os.getpid()
返回当前进程 ID
os.getppid()
返回父进程ID。当父进程已经结束,在Unix中返回的ID是初始进程(1)中的一个,在Windows中仍然是同一个进程ID,该进程ID有可能已经被进行进程所占用。
os.cpu_count()
返回系统的 CPU 数量。不确定则返回 None。
os.curdir
操作系统用来表示当前目录的常量字符串。在 Windows 和 POSIX 上是 ‘.’。在 os.path 中也可用。
os.pardir
操作系统用来表示父目录的常量字符串。在 Windows 和 POSIX 上是 ‘…’。在 os.path 中也可用。
os.sep
操作系统用来分隔路径不同部分的字符。在 POSIX 上是 ‘/’,在 Windows 上是是 ‘\’。注意,仅了解它不足以能解析或连接路径,请使用 os.path.split() 和 os.path.join(),但它有时是有用的。在 os.path 中也可用。
os.altsep
操作系统用来分隔路径不同部分的替代字符。如果仅存在一个分隔符,则为 None。在 sep 是反斜杠的 Windows 系统上,该值被设为 ‘/’。在 os.path 中也可用。
os.extsep
分隔基本文件名与扩展名的字符,如 os.py 中的 ‘.’。在 os.path 中也可用。
os.pathsep
操作系统通常用于分隔搜索路径(如 PATH)中不同部分的字符,如 POSIX 上是 ‘:’,Windows 上是 ‘;’。在 os.path 中也可用。
os.defpath
在环境变量没有 ‘PATH’ 键的情况下,execp and spawnp 使用的默认搜索路径。在 os.path 中也可用。
os.linesep
当前平台用于分隔(或终止)行的字符串。它可以是单个字符,如 POSIX 上是 ‘\n’,也可以是多个字符,如 Windows 上是 ‘\r\n’。在写入以文本模式(默认模式)打开的文件时,请不要使用 os.linesep 作为行终止符,请在所有平台上都使用一个 ‘\n’ 代替。
os.devnull
空设备的文件路径。如 POSIX 上为 ‘/dev/null’,Windows 上为 ‘nul’。在 os.path 中也可用。
os.urandom(1)
返回大小为 size 的字符串,它是适合加密使用的随机字节。
本文地址:https://blog.csdn.net/YKenan/article/details/107676588