将文件设为默认标准输入

时间:2017-11-19 15:25:59

标签: python default stdin

我想默认从文件中获取输入。 例如:

col_value.toInt < num

此语句应从文件中获取输入,而不是等待键命中。我不希望通过将标准输入重定向到文件来实现,默认情况下我想要它。简单来说,键盘是输入的默认设备,因此我想要一个文件来输入,而不是键盘。

2 个答案:

答案 0 :(得分:0)

您可以将文件附加到操作系统级别的标准输入,如下所示:

python script.py <input.txt

对于脚本,似乎只要调用input(),用户就会从文件中键入下一行。

答案 1 :(得分:0)

一个简单的解决方法。

def file_input(filename):
    with open(filename, 'r') as f:
        for line in f:
            yield line
_input_iterator = file_input('input.txt')

def input_():               # replace input
    return _input_iterator.next()

您可以通过将其包装为类或将其作为模块来避免全局变量。

我不喜欢这样但是有可能。要真正取代stdin(避难所在窗户上尝试过它)

import sys
sys.stdin = file('input.txt', 'r')
input_line = input()

对于UNIX模型,stdin只是一个文件。当您使用pipe等实用程序时,您将修改/重定向子进程的stdin。如果在父母的范围(例如终端)中修改了stdin进程,感觉会更舒服。否则它看起来并不像#std&#39;了。