在SSH控制台中print()之后输入()时的EOFError

时间:2017-04-15 22:27:54

标签: python python-3.x ssh console eoferror

我的Python代码中有一个奇怪的行为。它在我的Windows控制台中运行良好

例如,

@ cmd.exe:python file.py

我的 file.py 文件的内容

print("-------------------------- RANDOM STRING HERE! --------------------------------")
email = input()
print("-------------------------- RANDOM STRING HERE! --------------------------------")
name = input()
print("-------------------------- RANDOM STRING HERE! --------------------------------")
address = input()
print("-------------------------- RANDOM STRING HERE! --------------------------------")
print(email+name+address)

当我这样做时,同样的代码不起作用:

curl ://filepath/file.py | sudo python3

在SSH下的控制台中。我已经尝试了PuTTY和Git Bash,但我仍然遇到同样的错误。

SSH控制台中的EOFError:

EOFError in SSH Console

我已经尝试过使用sys.stdin,但它没有按预期工作。

1 个答案:

答案 0 :(得分:2)

不,真的,你不能这样做。运行

... | sudo python3

将脚本放到stdin,这样您就无法再使用该脚本中的stdin

但是如果没有使用临时文件的管道,你可以反过来做到这一点:

curl ://filepath/file.py -o /tmp/script
sudo python3 /tmp/script

或使用进程替换(在Bash中):

python3 <(curl ://filepath/file.py)