将打开的文件传递给 C Extensions
将打开的文件对象从 Python 传递到 C 扩展代码。
你可以使用 PyObject_AsFileDescriptor
函数将文件转换为整数文件描述符:
PyObject *fobj;
int fd = PyObject_AsFileDescriptor(fobj);
if (fd < 0){
return NULL;
}
要将整数文件描述符转换回 python 对象,请使用 PyFile_FromFd
。
int fd; /* Existing file descriptor */
PyObject *fobj = PyFile_FromFd(fd, "filename","r",-1,NULL,NULL,NULL,1);