gpt4 book ai didi

Python 2 原始输入(): EOFError when reading a line in WINDOWS 7 command prompt

转载 作者:可可西里 更新时间:2023-11-01 09:29:03 24 4
gpt4 key购买 nike

注意:关于 sublime text 中的 python raw_input() 已经问过许多相同的问题。这个问题是关于崇高的。 python 代码在 Windows 命令提示符中调用,与 sublime 终端不同,它支持交互式输入。


我有一个 python 程序,它使用内置函数 raw_input() 获取用户输入。见下文。

def password_score():
pwd = raw_input('Enter a password: ')
gname = raw_input('Enter your first name: ')
...

我在cmd中调用程序

echo password_score()|python -i a06q1.py

其中 a06q1.py 是文件名。 python目录的路径已临时添加到系统变量%PATH%中。我在文件的目录中。我的操作系统是 Windows 7。我使用的是 python 2.6。到目前为止,相同的命令一直有效。

然后cmd返回

File "<stdin>", line 1, in <module>
File "a06q1.py", line 27, in password_score
pwd = raw_input(p_prompt)
EOFError: EOF when reading a line

在 cmd 中 有办法绕过它吗?

编辑:我也刚刚在 iOS 终端上尝试过。使用与 cmd 中相同的命令(带引号),它返回相同的错误。我使用的命令行有什么问题吗?谢谢!


编辑:塞巴斯蒂安的回答解决了这个问题。该命令应如下所示适应 windows。

printf "a06q1.password_score()\n'arg1\n'arg2"|python -i -c "import a06q1"

\n 后面的单引号可以用空格代替。它们分隔多个输入。

最佳答案

EOF 意味着没有更多的输入。确实,唯一的一行被 -i 选项消耗了:

$ echo "f()" | python -i -c "def f(): print('x'); input('y\n')"
>>> x
y
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in f
EOFError: EOF when reading a line
>>>

提供更多输入:

$ printf "f()\n'z'" | python -i -c "def f(): print('x'); print(input('y\n')*3)"
>>> x
y
zzz
>>>

正如您所说:指定以这种方式运行的函数是“典型的错误”。如果你事先不知道你想运行什么功能,那么作为替代,你可以运行它:

$ python -c "from a06q1 import password_score as f; f()" < input_file.txt

关于Python 2 原始输入(): EOFError when reading a line in WINDOWS 7 command prompt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22317600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com