Python os.closerange() 方法



Python os.closerange() 方法关闭从 fd_lowfd_high 的所有文件描述符。其中,fd_low 是要关闭的文件描述符的下边界范围,而 fd_high 是要关闭的文件描述符的上边界范围。请注意,fd_low 是包含的,而 fd_high 是不包含的。

Python 中,文件描述符是标识符,表示操作系统内核中打开的文件,并保存在文件表中。通常,文件描述符具有非负值。负结果表示错误或“无值”条件。它们主要用于访问文件和其他输入/输出设备,例如网络套接字或管道。

os.closerange() 方法比 os.close() 方法更有效,因为它允许在文件描述符范围内灵活操作。

注意:如果在给定范围内关闭文件描述符时发生任何错误,则会忽略该错误。此方法在 Python 2.6 版本中引入。

语法

以下是 Python os.closerange() 方法的语法:

os.closerange(fd_low, fd_high);

参数

  • fd_low - 这是要关闭的最低文件描述符。

  • fd_high - 这是要关闭的最高文件描述符。

返回值

此方法不返回值。

示例 1

以下示例显示了 Python os.closerange() 方法的用法。在这里,我们创建了一个文件描述符 'os.O_RDWR|os.O_CREAT'。然后,我们在文件中写入字符串“This is test”。之后,我们使用此方法关闭文件。

import os, sys
# Open a file
fd = os.open( "code.txt", os.O_RDWR|os.O_CREAT )
# Write one string
string = "This is test"
x = str.encode(string)
os.write(fd, x)
# Close a single opened file
os.closerange( fd, fd)
print ("Closed all the files successfully!!")

这将创建给定的文件 foo.txt,然后在该文件中写入给定的内容。这将产生以下结果:

Closed all the files successfully!!

示例 2

值分别为 0 和 1 的文件描述符分别用作标准输入和输出。

在这里,我们将标准范围 '0' 作为 fd_low 和 '1' 作为 fd_high 作为参数传递给 closerange() 方法。

import os
filedesc = os.open( "code.txt", os.O_RDWR|os.O_CREAT )
os.closerange(0,1)
print ("Closed all the files successfully!!")

执行上述代码时,我们得到以下输出:

Closed all the files successfully!!

示例 3

在下面给出的示例中,我们创建了一个文件描述符 'r'。这意味着读取文件。

import os
file = "code.txt"
file_Object = open(file, "r")
fd = file_Object.fileno()
print("The descriptor of the file for %s is %s" % (file, fd))
os.closerange(fd,fd)

以下是上述代码的输出:

The descriptor of the file for code.txt is 3

示例 4

值为 2 的文件描述符是标准错误。

在这里,我们将值 '2' 作为 fd_high 作为参数传递给 closerange() 方法。

import os
filedesc = os.open( "code.txt", os.O_RDWR|os.O_CREAT )
os.closerange(0,2)
print ("Closed all the files successfully!!")

上述代码的输出如下:

Traceback (most recent call last):
  File "/home/sarika/Desktop/chown.py", line 4, in 
    print ("Closed all the files successfully!!")
OSError: [Errno 9] Bad file descriptor
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>
OSError: [Errno 9] Bad file descriptor
os_file_methods.htm
广告