Python程序停止读取标准inpu

2024-04-23 22:43:33 发布

您现在位置: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脚本发送参数时不起作用?你知道吗

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


Tags: 函数脚本input参数标准rawparamfloat
1条回答
网友
1楼 · 发布于 2024-04-23 22:43:33

每个inputraw_input调用都会等待以'\n'结尾的行。实时用户点击以Enter键结尾的键。程序必须将字符串发送到stdout,连接到stdin,以'\n'结尾。所以问题一定是php程序没有发送足够的信息,或者不是它发送的所有信息都能到达python程序。如果是后者,则可能是php程序需要“flush”stdout将最后一个字符串推送到python。当文件关闭时,flush是自动的,但是stdout通常不会关闭。你知道吗

相关问题 更多 >