使用python管道

时间:2011-06-15 12:41:51

标签: python pipe stanford-nlp

import re
import subprocess

sub = subprocess.Popen(['/home/karthik/Downloads/stanford-parser-2011-06-   08/lexparser.csh'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr = subprocess.PIPE)

sub.stdin.write("i am a fan of ac milan which is the best club in the world")

relns = []

while(True):
    rel = sub.stdout.readline()
        m = re.search("Sentence skipped", rel)

    if m != None:
            print 'stop'
            sys.exit(0)

        if rel == '\n':
                break
        relns.append(rel) 

print relns

sub.terminate()

所以我想要stanford解析器并使用lexparser.csh来解析这一行文本。但是当我运行这段代码时,我得到了默认文本的输出。给出的实际文本未被解析。我正在以正确的方式使用管道吗?我已经在很多例子中看到过 - 一个' - '与命令一起使用。为什么要使用它?当我使用脚本时,脚本只停留在sub.stdout.readline()

1 个答案:

答案 0 :(得分:1)

写完后,您可能需要在flush()上致电sub.stdin