Python | os.closerange 函数
最近更新时间 2020-12-08 10:06:21
os.closerange 函数关闭从 fd_low 到 fd_high 间的文件描述符,并忽略错误。包括 fd_low 但 不包括 fd_high。
文件描述符是一个数字,用于唯一标识计算机操作系统中打开的文件。它描述了数据资源,以及如何访问该资源。
在类Unix操作系统上,默认情况下,前三个文件描述符为STDIN(标准输入 0),STDOUT(标准输出 1)和STDERR(标准错误 2)。
可以用 io.fileno() 可以获得 file object 所对应的文件描述符。需要注意的是,直接使用文件描述符会绕过文件对象的方法,会忽略如数据内部缓冲等情况。
函数定义
os.closerange(fd_low, fd_high)
# 函数定义
def closerange(fd_low: int, fd_high: int) -> None: ...
参数
- checkfd_low - 开始文件描述符。
- checkfd_high - 结束文件描述符,不包括这个值。
返回值
- checkNone - 无。
示例1: - 使用 os.closerange() 函数关闭文件描述符。
# coding=utf-8
# Python3 代码
# 讲解怎样使用 os.closerange() 函数关闭系列文件描述符
# 引入 os 库
import os
# 获取多个文件描述符
path1 = "foo1.txt"
path2 = "foo2.txt"
path3 = "foo3.txt"
path4 = "foo4.txt"
path5 = "foo5.txt"
fd1 = os.open(path1, os.O_WRONLY)
fd2 = os.open(path2, os.O_WRONLY)
fd3 = os.open(path3, os.O_WRONLY)
fd4 = os.open(path4, os.O_WRONLY)
fd5 = os.open(path5, os.O_WRONLY)
# 关闭所有文件描述符 fd
fd_low = min(fd1, fd2, fd3, fd4, fd5)
fd_high = max(fd1, fd2, fd3, fd4, fd5)
os.closerange(fd_low, fd_high + 1)
print("All file descriptor closed successfully")
All file descriptor closed successfully
示例2: - 使用另外一种更有效的方式,通过 os.close 方法关闭所有文件。
# coding=utf-8
# Python3 代码
# 讲解怎样使用 os.closerange() 函数关闭系列文件描述符
# 引入 os 库
import os
# 获取多个文件描述符
path1 = "foo1.txt"
path2 = "foo2.txt"
path3 = "foo3.txt"
path4 = "foo4.txt"
path5 = "foo5.txt"
fd1 = os.open(path1, os.O_WRONLY)
fd2 = os.open(path2, os.O_WRONLY)
fd3 = os.open(path3, os.O_WRONLY)
fd4 = os.open(path4, os.O_WRONLY)
fd5 = os.open(path5, os.O_WRONLY)
# 关闭所有文件描述符 fd
fd_low = min(fd1, fd2, fd3, fd4, fd5)
fd_high = max(fd1, fd2, fd3, fd4, fd5)
for fd in range(fd_low, fd_high):
try:
os.close(fd)
except OSError:
pass
print("All file descriptor closed successfully")
All file descriptor closed successfully