python 中的 sys.stdin.fileno() 是什么
What is sys.stdin.fileno() in python
很抱歉,如果它是非常基本的或者之前已经问过(我 googled 但找不到简单且令人满意的解释)。
我想知道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,this (nullage.com)是我能找到的参考,但它也只说,
fileno() -> integer "file descriptor".
This is needed for lower-level file interfaces, such os.read().
那么,这到底是什么意思呢?
文件描述符是一个低级概念,它是一个整数,代表一个打开的文件。每个打开的文件都有一个唯一的文件描述符。
在Unix中,按照惯例,三个文件描述符0
、1
和2
分别代表标准输入、标准输出和标准错误。
>>> import sys
>>> sys.stdin.fileno()
0
>>> sys.stdout.fileno()
1
>>> sys.stderr.fileno()
2
在类 Unix 系统上,当您打开文件(或 "file-like" 实体)时,系统会使用一个 file descriptor - 一个整数 - 您可以对其进行操作。
标准文件描述符一共有三种——标准输入、标准输出和标准错误——文件描述符分别为0、1、2。
fileno()
方法 returns python 中类文件对象的文件描述符。
文件描述符不是 python 独有的。它是 POSIX API 的一部分——每种 UNIX 版本都有它们。但是,Windows 具有类似的句柄概念,在大多数情况下,句柄是文件描述符的同义词。因此在python中,用fileno
来表示两者。它们只是对您的程序可用的数据流的低级抽象引用。
查看 file descriptors 上的维基页面了解更多信息。
很抱歉,如果它是非常基本的或者之前已经问过(我 googled 但找不到简单且令人满意的解释)。
我想知道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,this (nullage.com)是我能找到的参考,但它也只说,
fileno() -> integer "file descriptor".
This is needed for lower-level file interfaces, such os.read().
那么,这到底是什么意思呢?
文件描述符是一个低级概念,它是一个整数,代表一个打开的文件。每个打开的文件都有一个唯一的文件描述符。
在Unix中,按照惯例,三个文件描述符0
、1
和2
分别代表标准输入、标准输出和标准错误。
>>> import sys
>>> sys.stdin.fileno()
0
>>> sys.stdout.fileno()
1
>>> sys.stderr.fileno()
2
在类 Unix 系统上,当您打开文件(或 "file-like" 实体)时,系统会使用一个 file descriptor - 一个整数 - 您可以对其进行操作。
标准文件描述符一共有三种——标准输入、标准输出和标准错误——文件描述符分别为0、1、2。
fileno()
方法 returns python 中类文件对象的文件描述符。
文件描述符不是 python 独有的。它是 POSIX API 的一部分——每种 UNIX 版本都有它们。但是,Windows 具有类似的句柄概念,在大多数情况下,句柄是文件描述符的同义词。因此在python中,用fileno
来表示两者。它们只是对您的程序可用的数据流的低级抽象引用。
查看 file descriptors 上的维基页面了解更多信息。