Python 文件 fileno() 方法



Python 文件的 fileno() 方法返回打开文件的文件描述符(或文件句柄)。文件描述符是一个无符号整数,操作系统使用它来识别 os 内核中的打开文件。它只保存非负值。

文件描述符就像用于获取存储在数据库中的记录的 ID。因此,Python 使用它对文件执行各种操作;例如打开文件、写入文件、从文件读取或关闭文件等。

语法

以下是 Python 文件 fileno() 方法的语法:

fileObject.fileno(); 

参数

该方法不接受任何参数。

返回值

此方法返回整数文件描述符。

示例

以下示例显示了 Python 文件 fileno() 方法的使用。在这里,我们尝试使用文件对象以写入二进制 (wb) 模式打开文件“foo.txt”。然后,在该文件对象上调用 fileno() 方法以检索引用当前文件的文件描述符。

# Open a file
fo = open("foo.txt", "wb")
print("Name of the file: ", fo.name)

fid = fo.fileno()
print("File Descriptor: ", fid)

# Close opened file
fo.close()

当我们运行上面的程序时,它会产生以下结果:

Name of the file:  foo.txt
File Descriptor:  3

示例

文件描述符也用于关闭它所代表的文件。

在此示例中,我们正在导入 os 模块,因为文件描述符通常由操作系统维护。由于我们使用文件对象来引用文件,因此在代表当前文件的文件对象上调用 fileno() 方法以检索其文件描述符。通过将检索到的文件描述符作为参数传递给 os.close() 方法来关闭文件。

import os
# Open a file using a file object 'fo'
fo = open("hi.txt", "w")

fid = fo.fileno()
print("The file descriptor of the given file: ", str(fid))

# Close the opened file
os.close(fid)

如果我们编译并运行上面的程序,则结果如下所示:

The file descriptor of the given file:  3

示例

但是,如果文件不存在并且程序仍然尝试以读取模式打开它,则 fileno() 方法会引发 FileNotFoundError。

fo = open("hi.txt", "r")

# Return the file descriptor
fid = fo.fileno()

# Display the file descriptor
print(fid)

#Close the opened file
fo.close()

编译并运行上面的程序,获得的输出如下:

Traceback (most recent call last):
  File "D:\Tutorialspoint\Programs\Python File Programs\filenodemo.py", line 1, in 
    fo = open("hi.txt", "r")
FileNotFoundError: [Errno 2] No such file or directory: 'hi.txt'
python_file_methods.htm
广告