sys.stdin.readlines()挂起Python脚本

Bo *_*o A 11 python stdin hang readlines

每次我执行我的Python脚本时,它似乎都挂在这一行:

lines = sys.stdin.readlines()
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决/避免这种情况?

编辑

这就是我正在做的事情lines:

lines = sys.stdin.readlines()
updates = [line.split() for line in lines]
Run Code Online (Sandbox Code Playgroud)

编辑2

我从git hook运行这个脚本,所以在EOF周围有吗?

mgi*_*son 15

这很大程度上取决于您要完成的任务.你可以这样做:

for line in sys.stdin:
    #do something with line
Run Code Online (Sandbox Code Playgroud)

当然,使用这个习惯用语以及readlines()您正在使用的方法,您需要以某种方式将EOF字符发送到您的脚本,以便它知道该文件已准备好读取.(在unix上,Ctrl-D通常可以解决问题).


Dan*_*olo 5

除非您将某些内容重定向到stdin预期的行为.这表示要读取输入stdin(这将是您运行脚本的控制台).它正在等待您的输入.

请参阅:"如何完成sys.stdin.readlines()输入?