如何将在线流管道化为python脚本,并生成流输出

时间:2017-03-21 11:35:13

标签: python bash pipe

我有下面的python脚本,它接受文本输入,格式化(到html)并产生输出。

管道静态文本输入时,它可以正常工作。但是,当输入是文本流时,它会冻结(或者可能等待某种EOF)。

我希望它能够流式传输输出,而不是等待文本完成。

修改 似乎我没有耐心,并且在转储输出之前等待一些缓冲区来填充。 有关如何转储每行输出的任何想法

由于

#!/usr/bin/env python

"""
Convert a piped in text input to html, while replacing file/path names with URLs
"""
import sys
import os
import re

def file_html(field):
    field = field.group()
    if os.path.isfile(field) or os.path.isdir(field):
        return """<a href="file://{0}"  target="_blank">{0}  </a>""".format(field)
    else:
        return field

if __name__ == "__main__":

    for line in sys.stdin:
        line = '<p><tt>' + re.sub('/[^\s]*', file_html, line) + '</tt></p>'
        sys.stdout.write(line)

0 个答案:

没有答案