Skip to main content
 首页 » 编程设计

php之通过 PHP 将服务器端 .exe 的输出流式传输到本地 Python

2025年02月15日28cloudgamer

我有这样一种情况,我在本地运行 Python 脚本并使用 f = urllib.urlopen() 查询服务器并传递一些参数。服务器端的 PHP 脚本接受参数、检查它们并使用 passthru() 命令将它们传递给可执行文件。可执行文件运行,然后将输出传递回客户端,在客户端使用 response = f.read() 读取它。然后打印响应。

这是可行的,但是输出会在过程结束时以一个大块的形式返回。我想要做的是在运行时在 python 终端本地打印在线可执行文件的输出。有谁知道在这里采取的好方法?我试过 for line in f: print line,但它给出了与以前相同的行为。

请您参考如下方法:

documentation for urllib表示“如果 size 参数被省略或为负数,则 read() 方法可能不会读取数据流的末尾;在一般情况下,没有好的方法可以确定来自套接字的整个流已被读取”

因此您可以尝试一次处理一个字符,如下所示:

line = '' 
while True: 
    char = f.read(1) 
    if not char: 
        break 
    elif char == '\n': 
        print line 
        line = '' 
    else: 
        line += char 
 
# or a tidier form based on 
# http://bob.ippoli.to/archives/2005/06/14/python-iterators-and-sentinel-values/ 
line = '' 
for char in iter(lambda: f.read(1), ''): 
    if char == '\n': 
        print line 
        line = '' 
    else: 
        line += char