我的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,但它没有按预期工作。
答案 0 :(得分:2)
不,真的,你不能这样做。运行
... | sudo python3
将脚本放到stdin
,这样您就无法再使用该脚本中的stdin
。
但是如果没有使用临时文件的管道,你可以反过来做到这一点:
curl ://filepath/file.py -o /tmp/script
sudo python3 /tmp/script
或使用进程替换(在Bash中):
python3 <(curl ://filepath/file.py)