STDIN文件读取查询

时间:2016-05-11 21:12:35

标签: python linux python-2.7 python-3.x ipython

我正在做小项目,我必须从STDIN读取文件。 我不确定这意味着什么,我问教授他告诉我的是什么, 没有必要像我们一般那样打开文件并关闭。

sFile = open ( "file.txt",'r')

我不必将文件作为参数传递。

我有点困惑他想要的东西。

3 个答案:

答案 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完成的)。