如何传递字符串而不是文件

时间:2016-01-25 19:36:15

标签: python

我有一个名为“lexparser.bat”的文件

@echo off
:: Runs the English PCFG parser on one or more files, printing trees only
:: usage: lexparser fileToparse
java -mx150m -cp "*;" edu.stanford.nlp.parser.lexparser.LexicalizedParser -outputFormat "penn,typedDependencies" edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz %1

我有一个文字 Text = ['asdfd','ahksja',....]

我尝试将一个句子'asdf'传递给lexparser.bat,但它不起作用。

for sentence in Text:
    parser = os.popen("lexparser.bat", sentence)

但是,如果我的文本采用.txt格式,则可以使用

parser = os.popen("lexparser.bat", "file.txt") 

1 个答案:

答案 0 :(得分:1)

是否可以这样做以及取决于此 lexparser 程序的语法,而不是取决于Python。

那就是说,正如@RobKennedy所说,这不是你如何将一个论点传递给os.popen()。你可能想要os.popen("lexparser.bat file.txt")

或者改为使用subprocess,因为os.popendeprecated。这看起来像subprocess.call(["lexparser.bat", "file.txt"])