我有下面的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)