0
使用python和NLTK我想将帮助结果保存到变量。Python:将帮助结果保存到变量
x = nltk.help.upenn_tagset('RB')
例如。
x变量被赋值为无。控制台打印帮助功能的结果,但不保存到var x。
使用python和NLTK我想将帮助结果保存到变量。Python:将帮助结果保存到变量
x = nltk.help.upenn_tagset('RB')
例如。
x变量被赋值为无。控制台打印帮助功能的结果,但不保存到var x。
查看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接受的答案呢,只不过它采用的是可重复使用的类包装 - 这是一个一次性的解决方案。
http://stackoverflow.com/questions/6796492/python-temporarilyred_stdout-stderr应该有所帮助。您可以将其重定向到一个StringIO对象,然后从中读取。 – mgilson 2013-02-28 17:21:18
https://github.com/nltk/nltk/issues/205 – YXD 2013-02-28 17:21:43