如何组合命令行和用户输入的文件输入

时间:2017-05-02 22:52:17

标签: python-3.x

在我从命令行读取文件后,我无法提示用户输入。我的代码看起来像这样,但我每次都得到一个EOFError。我错过了什么吗?我的代码:

import sys
file = sys.stdin.read().splitlines()
print (file)
name = input("Input your name: ")
print (name)

以下是我在这些行的命令行中输入的内容:

python3 tester.py < example_file.txt
['my file']
Input your name: Traceback (most recent call last):
File "tester.py", line 4, in <module>
name = input("Input your name: ")
EOFError: EOF when reading a line

在这种情况下,我相信我离开了sys.stdin.read()。splitlines()行,因为它正确地打印出文件中的信息。但是,一旦执行包含input()的行,我就不会被提示输入任何内容,而是在没有暂停输入的情况下出现错误。

1 个答案:

答案 0 :(得分:1)

您可以使用fileinput module更轻松地处理多个流。

select column_name
from information_schema.columns
where table_schema = 'public' and table_name = 'mytable'

然后使用文件名运行,而不是文件的字符串内容:

import fileinput

t_list=[line for line in fileinput.input()]
print(t_list)

name=input('name? ')
print(name)