File Objects

Python 的内置文件对象完全在 C 标准库的FILE*支持下实现。这是一个实现细节,在将来的 Python 版本中可能会更改。

在版本 2.2 中更改:接受允许的子类型。

2.2 版中的新Function。

成功后,返回一个新文件对象,该对象在* filename 给定的文件上打开,文件模式由 mode 给定,其中 mode 具有与标准 C 例程fopen()相同的语义。失败时,返回 NULL *。

从已经打开的标准 C 文件指针* fp 创建一个新的PyFileObject。当应该关闭文件时,将调用 close 函数。返回 NULL 并在失败时使用 close *关闭文件。 * close 是可选的,可以设置为 NULL *。

如果在释放GIL时调用方将使用返回的FILE*对象,则它还必须适当地调用下面介绍的PyFile_IncUseCount()PyFile_DecUseCount()函数。

调用此函数时必须按住GIL

建议的用法是在PyFile_AsFile()之后并在释放 GIL 之前调用此方法:

FILE *fp = PyFile_AsFile(p);
PyFile_IncUseCount(p);
/* ... */
Py_BEGIN_ALLOW_THREADS
do_something(fp);
Py_END_ALLOW_THREADS
/* ... */
PyFile_DecUseCount(p);

2.6 版的新Function。

调用此函数时,必须按住GIL(请参见上面的示例)。

2.6 版的新Function。

等效于p.readline([n]),此函数从对象* p *读取一行。 * p 可以是文件对象,也可以是具有readline()方法的任何对象。如果 n 0,则仅读取一行,而不管该行的长度如何。如果 n 大于0,将从文件中读取的字节数不超过 n ;可以返回部分行。在这两种情况下,如果立即到达文件末尾,将返回一个空字符串。如果 n *小于0,则无论长度如何都读取一行,但是如果立即到达文件末尾,则引发EOFError

返回* p *指定的文件名作为字符串对象。

2.3 版的新Function。

2.6 版的新Function。

首页