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