Python fileno method:

The fileno is a method of IOBase class in Python that returns the underlying file descriptor of the stream. In other words, it returns an integer file number to request I/O operations from the operating system.

If we open the file in a read mode, the file must be present in the current directory. But, if we open it in a write mode, it will create a new file and return its file descriptor. Therefore, in the absence of a file or if the file is closed, it will raise an exception.

Signature

The signature for the fileno method is as shown below.

fileObject.fileno()

Parameters and return type

  • Here, The fileno method doesn’t take any parameters.
  • However, it returns an integer file descriptor.

Python fileno method Examples:

Example 1: We will open a file in write mode and print its descriptor in this example.

# Open a file
f1 = open("test.txt", "w")
print ("File Name ", f1.name)

fd1 = f1.fileno()
print ("File Descriptor ", fd1)

# Closing file
f1.close()

Output

File Name  test.txt
File Descriptor  3

Example 2: In this example, we will open a file in reading mode and assume that the file exists in the current directory.

# Open a file
f1 = open("test.txt", "r")
print ("File Name ", f1.name)

fd1 = f1.fileno()
print ("File Descriptor ", fd1)

# Closing file
f1.close()

Output

File Name  test.txt
File Descriptor  3

Example 3: In this example, we will access the file descriptor after closing a file that will raise an exception.

#Initializing 
# Open a file
f1 = open("test.txt", "w")
print ("File Name ", f1.name)

fd1 = f1.fileno()
print ("File Descriptor ", fd1)

# Closing file
f1.close()

#Accessing File Descriptor again
fd1 = f1.fileno()

Output

File Name  test.txt
File Descriptor  3
Traceback (most recent call last):
  File "main.py", line 12, in 
    fd1 = f1.fileno()
ValueError: I/O operation on closed file

References

Happy Learning 🙂