我想pycosat的這個詳細的輸出存儲到字符串:捕獲輸出打印在python
import pycosat
cnf = [[1, -5, 4], [-1, 5, 3, 4], [-3, -4]]
pycosat.solve(cnf,verbose=5)
我發現各種解決方案,例如 Capture stdout from a script in Python
但是,基於stringIO()的解決方案不捕獲pycosat輸出。輸出得到正常打印,並捕獲一個空字符串。
我認爲這與pycosat是綁定到c庫picosat的事實有關,但我不知道如何處理這個問題。
該解決方案無法正常工作或 https://stackoverflow.com/a/29834357/4270148
Python會在
out.stop()
凍結IPython中也將凍結在
sys.stdout = StringIO()
可能有事情做吧。
我沒有嘗試使用使用子進程的解決方案,因爲我需要局部變量cnf,並且將它傳遞到子進程並沒有意義。
我不知道這是否應該是相關的,但我使用OSX-64
你確實在Mac OS X內建的Python上嘗試過它,對不對? – Dalen
我沒有,因爲我沒有安裝pycosat(我使用conda,因爲包問題) – Tivaro