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

EOFError when input() after print() in SSH console

我的 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:

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

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

... | sudo python3

将脚本放入 stdin,这样您就不能再使用该脚本中的 stdin

但是您可以使用临时文件在没有管道的情况下以相反的方式进行操作:

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

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

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