如果这很基础或之前已经询问过(我通过Google搜索但没有找到简单且令人满意的解释),我很抱歉。
我想知道sys.stdin.fileno()
是什么?
我在一份代码中看到了它,但不理解它的作用。以下是实际的代码块:
fileno = sys.stdin.fileno()
if fileno is not None:
new_stdin = os.fdopen(os.dup(fileno))
我刚在我的Python命令行中执行了 print sys.stdin.fileno()
,它返回了 0
。
我还在Google上搜索过,并找到了一个参考资料(nullage.com),但它只是说:
fileno() -> integer "file descriptor"。
这对于较低级别的文件接口(例如os.read())是必需的。
那么,具体是什么意思呢?
os.read
)是必需的。它是文件的低级别标识符(在所有平台上可能不适用),传统上标准输入具有描述符0,标准输出1和标准错误2,其他文件具有描述符> 2。os.dup
复制描述符(创建文件副本的低级别标识符),而fdopen
从低级别描述符创建高级对象。 - skyking