我正在使用一個IO對象(一些STDOUT
輸出文本),我試圖將它轉換爲字符串,以便我可以做一些文本處理。我願做這樣的事情:如何將IO對象轉換爲Ruby中的字符串?
my_io_object = $stdout
#=> #<IO:<STDOUT>>
my_io_object.puts('hi') #note: I know how to make 'hi' into a string, but this is a simplified example
#=>hi
my_io_object.to_s
我已經嘗試了幾件事情,並得到了一些錯誤:
my_io_object.read
#=> IOError: not opened for reading
my_io_object.open
#=> NoMethodError: private method `open' called for #<IO:<STDOUT>>
IO.read(my_io_object)
#=> TypeError: can't convert IO into String
我已經通過IO類的方法讀,我做不到弄清楚如何處理該對象中的數據。有什麼建議麼?
「IO錯誤:沒有打開閱讀」應該是一個適當的線索。嘗試搜索所述錯誤。 – 2013-03-13 01:55:11
你沒有清楚地說出你想要做什麼。解釋你想要做什麼,我們可以給你一個更好的方法來達到目的。你如何獲得標準輸出文本? – 2013-03-13 05:27:13
謝謝,@theTinMan。對不清楚的道歉 - 這是我的困惑的反映。我最終通過將STDOUT指向一個StringIO對象來解決這個問題。 – MothOnMars 2013-03-13 22:59:37