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()
Итак, я хочу использовать синтаксический анализатор Стэнфорда и использовать lexparser.csh для разбора этой строки текста. Но когда я запускаю этот кусок кода, я получаю вывод текста по умолчанию. Фактический текст, указанный в, не анализируется. Итак, правильно ли я использую каналы? И я видел во многих примерах - «-» используется вместе с командой. Почему это используется? Потому что, когда я использую это, скрипт просто останавливается на sub.stdout.readline ()