sys.stdin读什么?

sys.stdin读什么?,第1张

sys.stdin读什么?

因此,您使用了Python的“内置函数”,大概是这样的:

file_object = open('filename')for something in file_object:    some stuff here

这通过在文件对象上调用 迭代器读取文件,而该 迭代器 恰巧从文件返回下一行。

您可以改用:

file_object = open('filename')lines = file_object.readlines()

它将行从当前文件位置读取到列表中。

现在,

sys.stdin
这只是另一个文件对象,它恰好在程序启动之前由Python打开。您可以根据自己的意愿来处理该文件对象,但这与任何其他文件对象并没有什么不同,只是您不需要
open

for something in sys.stdin:    some stuff here

将遍历标准输入,直到到达文件末尾。这样:

lines = sys.stdin.readlines()

您的第一个问题实际上是关于使用文件对象的不同方式的。

其次,它从哪里读取?它正在从文件描述符0(零)读取。在Windows上,它是文件句柄0(零)。默认情况下,文件描述符/句柄0连接到控制台或tty,因此实际上是从键盘读取的。但是,通常可以通过外壳(如bash或cmd.exe)使用以下语法将其
重定向

myprog.py < input_file.txt

这会将文件描述符零更改为读取文件而不是键盘。在UNIX或Linux中,这使用底层调用

dup2()
。看了你的程序文档,了解更多有关重定向(或者
mandup2
,如果你是勇敢的)。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5645417.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存