2013-02-28 64 views
0

使用python和NLTK我想将帮助结果保存到变量。Python:将帮助结果保存到变量

x = nltk.help.upenn_tagset('RB') 

例如。

x变量被赋值为无。控制台打印帮助功能的结果,但不保存到var x。

+0

http://stackoverflow.com/questions/6796492/python-temporarilyred_stdout-stderr应该有所帮助。您可以将其重定向到一个StringIO对象,然后从中读取。 – mgilson 2013-02-28 17:21:18

+0

https://github.com/nltk/nltk/issues/205 – YXD 2013-02-28 17:21:43

回答

0

查看help.py的源文件,它使用print语句并不返回任何内容。 upenn_tagset调用_format_tagset,它将所有内容都传递给_print_entries,它使用print

所以,我们真正想做的是重定向打印语句。

快速搜索,我们有https://stackoverflow.com/a/4110906/1210278 - 替换sys.stdout

正如@mgilson关联的问题所指出的那样,这是一个临时性问题的永久性解决方案。那么我们该怎么办?这应该很简单 - 只要保持原来的地方。

import sys 
print "Hello" 
cons_out = sys.stdout 
sys.stdout = (other writable handle you can get result of) 

do_printing_function() 

sys.stdout = cons_out 
print "World!" 

这实际上正是在https://stackoverflow.com/a/6796752/1210278接受的答案呢,只不过它采用的是可重复使用的类包装 - 这是一个一次性的解决方案。

相关问题