在 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)
我的 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)