Python os.closerange() Method



The Python os.closerange() method closes all file descriptors from fd_low to fd_high. Here, fd_low is the lower boundary range of the file descriptor to be closed, whereas fd_high is the higher boundary range of the file descriptor to be closed. Note that fd_low is inclusive whereas fd_high is exclusive.

File descriptors in Python are identifiers that represents the open files in the os kernel and are kept in a table of files. Typically, file descriptors have non-negative values. Negative results denote an error or a "no value" condition. The main things they assist with are accessing files and other input/output devices like network sockets or pipes.

The os.closerange() method is more efficient than os.close() method because it allows flexibility in the range of file descriptor.

Note: If any error occurs while closing the file descriptor in the given range, it is ignored. This method was introduced in Python version 2.6.

Syntax

Following is the syntax of Python os.closerange() method −

os.closerange(fd_low, fd_high);

Parameters

  • fd_low − This is the Lowest file descriptor to be closed.

  • fd_high − This is the Highest file descriptor to be closed.

Return Value

This method does not return any value.

Example

The following example shows the usage of Python os.closerange() method. Here we are creating a file descriptor 'os.O_RDWR|os.O_CREAT'. Then we write a string "This is test" in the file. Thereafter, we are closing the file using this method.

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!!")

This would create given file foo.txt and then write given content in that file.This will produce the following result −

Closed all the files successfully!!

Example

File descriptors with values 0 and 1 are used as the standard input and output, respectively.

In here, we are passing the standard range '0' as fd_low and '1' as fd_high as an argument to the closerange() method.

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

While executing the above code we get the following output −

Closed all the files successfully!!

Example

In the example given below we are creating a file descriptor 'r'. This means reading the file.

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)

Following is an output of the above code −

The descriptor of the file for code.txt is 3

Example

The file descriptor with the value 2 is the standard error.

Here, we are passing the value '2' as fd_high as an argument to the closerange() method.

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

Output of the above code is as follows −

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
Advertisements