Python 零作为打开函数中的文件参数

Ari*_*i24 0 python

我目前对这段代码感到困惑。

究竟是做什么的

open(0)
Run Code Online (Sandbox Code Playgroud)

做?

我已经查阅了文档或试图在互联网上找到一些东西,但没有任何线索。

使用此代码的代码片段:

map(abs,map(int,open(0).read().split()))
Run Code Online (Sandbox Code Playgroud)

谢谢^

Sha*_*ger 6

0是与stdin(1对应于stdout, 2to stderr)关联的文件描述符。openint文件描述符作为参数,而不仅仅是路径,因此传递0是合法的。这只是创建绑定到的文件对象而stdin无需import sys.

它的缺陷在于,当它关闭时,它将关闭文件描述符0(因为closefd=False没有通过),所以sys.stdin会在没有意识到的情况下关闭(尽管如果有人尝试使用它,它可能会弄清楚)。