我正在做小项目,我必须从STDIN读取文件。 我不确定这意味着什么,我问教授他告诉我的是什么, 没有必要像我们一般那样打开文件并关闭。
sFile = open ( "file.txt",'r')
我不必将文件作为参数传递。
我有点困惑他想要的东西。
答案 0 :(得分:0)
import sys
,然后sys.stdin
将是您想要的“文件”,您可以像使用任何其他文件一样使用该文件(例如sys.stdin.read()
),而您无需关闭它。 stdin
表示“标准输入”。
答案 1 :(得分:0)
如果您阅读this帖子,可能会有所帮助,这似乎与您的相似。
在这种情况下,'stdin'将是在python脚本之后的命令行上的参数,因此python script.py input_file
。此 input_file 将是包含您正在处理的任何数据的文件。
所以,你可能想知道如何读取标准输入。有几种选择。上面链接的线程中建议的那个如下:
import fileinput
for line in fileinput.input():
#read data from file
当然还有其他方法,但我想我会告诉你的。查看链接的帖子以获取更多信息。
根据您的分配的上下文,stdin可能会自动发送到脚本中,或者您可能必须手动执行此操作,如上所述。
答案 2 :(得分:0)
stdin接收来自不同来源的输入 - 取决于它获得的输入。 给出了一个非常简单的代码示例(让我们称之为:script.py):
import sys
text = sys.stdin.read()
print text
您可以使用输入文件管道脚本,如下所示:
$ more file.txt | script.py
在这种情况下,管道的第一部分的输出 - 这是文件的内容 - 被分配给我们的变量(在这种情况下是文本,最终打印出来)。
如果留空(即没有任何额外输入),则如下:
$ python script.py
让你编写类似于输入函数的输入并将写入的输入分配给定义的变量(注意,这个输入 - “窗口”是打开的,直到你明确地关闭它,这通常是用Ctrl + D完成的)。