Select Language

AI社区

AI技术百科

5.9、Python fileno()函数:得到文件编号

该函数用于得到文件在进程中的编号,这是一个整数值。其中,stdin 在进程中的文件编号永远是 0,stdout 永远是 1,stderr 永远是 2,其他文件的编号都大于 2。

下面的例子查看了普通文件的编号以及 3 个特殊文件的编号。

>>> import sys                    # 引入sys模块
>>> fd = open("./in.dat", "rb")   # 打开一个普通文件
>>> fd.fileno()               # 得到该文件的编号
3
>>> fd.close()                # 关闭该文件
>>> sys.stdin.fileno()        # 得到stdin的文件编号
0
>>> sys.stdout.fileno()       # 得到stdout的文件编号
1
>>> sys.stderr.fileno()       # 得到stderr的文件编号
2

如果该文件已经被关闭,则 fileno() 会抛出 ValueError 异常。下面的代码演示了这种情况。

>>> import sys
>>> fd = open("./in.dat", "rb")        # 打开文件
>>> fd.fileno()
3
>>> fd.close()       # 关闭文件
>>> fd.fileno()      # 无法得到文件编号,抛出异常ValueError
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file


我要发帖
Python文件操作
2021-12-10 23:41:32加入圈子
  • 14

    条内容
如果希望将数据长久保存,最简单的办法就是将数据写入磁盘文件中。这样在程序退出后,处理结果依然长期有效。
对于大型软件项目,文件操作是无法避免的。本章介绍普通文本文件和二进制文件的操作方法,包括打开文件、读写文件、文件模式和 with 语句的使用等。