欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python 中 os 操作系统接口模块开发

程序员文章站 2022-03-03 22:23:56
Python 中 os 操作系统接口模块1. 与工作路径相关2. 与文件目录相关2.1 查2.2 增2.3 改2.4 删3. 与配置相关1. 与工作路径相关os.chdir(path)将当前工作目录更改为 pathos.getcwd()返回表示当前工作目录的字符串2. 与文件目录相关2.1 查os.listdir(path='.')返回一个列表,该列表包含了 path 中所有文件与目录的名称。该列表按任意顺序排列,并且不包含特殊条目 ‘.’ 和 ‘…’,即使它们确实在目...

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 中:

  1. name:本条目的基本文件名,是根据 scandir() 的 path 参数得出的相对路径。
  2. path:本条目的完整路径。
  3. is_dir():如果本条目是目录,或是指向目录的符号链接,则返回 True。如果本条目是文件,或指向任何其他类型的文件,或该文件不再存在,则返回 False。
  4. is_file():如果本条目是文件,或是指向文件的符号链接,则返回 True。如果本条目是目录,或指向目录,或指向其他非文件条目,或该文件不再存在,则返回 False。
  5. stat():返回本条目对应的 stat_result 对象。

os.stat(path + "a.txt")

取文件或文件描述符的状态。在所给路径上执行等效于 stat() 系统调用的操作。path 可以是字符串类型,或(直接/间接由 PathLike 接口返回的) bytes 类型,或打开的文件描述符。返回一个 stat_result 对象。

stat_result 对象的主要参数:

  1. st_mode: 文件模式:包括文件类型和文件模式位(即权限位)。
  2. st_ino: 与平台有关,但如果不为零,则根据 st_dev 值唯一地标识文件。通常:在 Unix 上该值表示索引节点号 (inode number)。在 Windows 上该值表示 文件索引号 。
  3. st_dev: 该文件所在设备的标识符。
  4. st_nlink: 硬链接的数量。
  5. st_uid: 文件所有者的用户 ID。
  6. st_gid: 文件所有者的用户组 ID。
  7. st_size: 文件大小(以字节为单位),文件可以是常规文件或符号链接。符号链接的大小是它包含的路径的长度,不包括末尾的空字节。
  8. st_atime: 最近的访问时间,以秒为单位。
  9. st_mtime: 最近的修改时间,以秒为单位。
  10. 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

相关标签: python