Python程序停止读取标准输入



我正在编写一个python脚本,该脚本在他的标准输入中接收几个参数。我使用raw_input()函数,它适用于firsts参数,但当我在while循环中调用它时,它会完全冻结。

这是我的代码:

def launch_trade(logger):
    Kerviel = Trader()
    param = raw_input() #Works fine
    Kerviel.Capital = float(param)
    param = raw_input() #Works fine
    Kerviel.NbDays = int(param)
    param = raw_input() #Works Fine
    while (param != '--end--'):
        Kerviel.action(float(param), logger)
        Kerviel.Cours.append(param)
        param = raw_input() #Here it infinite wait

事实上,当我自己在控制台中发送所有参数时,这个程序就可以工作了。但它应该由php脚本调用,该脚本在他的stdin上向它发送参数。

当参数由php脚本发送时,为什么最后一个raw_input()不起作用?

谢谢你的回答,很抱歉英语不好。

每个inputraw_input调用都会等待一个以'\n'结尾的行。实时用户按以Enter键结尾的键。程序必须将字符串发送到连接到stdin的stdout,并以'\n'结尾。因此,问题一定是php程序发送的信息不够,或者它发送的每一个信息都没有到达您的python程序。如果是后者,可能是php程序需要"刷新"stdout以将最后一个字符串推送到python。当文件关闭时,刷新是自动的,但stdout通常不会关闭。

最新更新