5.18 将文件描述符包装成文件对象

    一个文件描述符和一个打开的普通文件是不一样的。文件描述符仅仅是一个由操作系统指定的整数,用来指代某个系统的I/O通道。如果你碰巧有这么一个文件描述符,你可以通过使用 函数来将其包装为一个Python的文件对象。你仅仅只需要使用这个整数值的文件描述符作为第一个参数来代替文件名即可。例如:

    当高层的文件对象被关闭或者破坏的时候,底层的文件描述符也会被关闭。如果这个并不是你想要的结果,你可以给 open() 函数传递一个可选的 。比如:

    需要重点强调的一点是,上面的例子仅仅是为了演示内置的 open() 函数的一个特性,并且也只适用于基于Unix的系统。如果你想将一个类文件接口作用在一个套接字并希望你的代码可以跨平台,请使用套接字对象的 方法。但是如果不考虑可移植性的话,那上面的解决方案会比使用 makefile() 性能更好一点。

    你也可以使用这种技术来构造一个别名,允许以不同于第一次打开文件的方式使用它。例如,下面演示如何创建一个文件对象,它允许你输出二进制数据到标准输出(通常以文本模式打开):

    原文: