3

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

例如,

@cmd.exe:python文件.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:

SSH 控制台中的 EOFError

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

4

1 回答 1

2

不,真的,你不能这样做。跑步

... | sudo python3

将脚本放入,stdin因此您不能再使用该stdin脚本中的。

但是您可以使用临时文件在不使用管道的情况下以另一种方式执行此操作:

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

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

python3 <(curl ://filepath/file.py)
于 2017-04-16T07:32:55.447 回答