在我从命令行读取文件后,我无法提示用户输入。我的代码看起来像这样,但我每次都得到一个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()的行,我就不会被提示输入任何内容,而是在没有暂停输入的情况下出现错误。
答案 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)