我正在使用IO对象(一些STDOUT输出文本),我正在尝试将其转换为字符串,以便我可以进行一些文本处理.我想做这样的事情:
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
Run Code Online (Sandbox Code Playgroud)
我尝试了一些事情并得到了一些错误:
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
Run Code Online (Sandbox Code Playgroud)
我已经阅读了IO类方法,我无法弄清楚如何操作该对象中的数据.有什么建议?
Mot*_*ars 30
我通过将输出定向到StringIO对象而不是STDOUT来解决这个问题:
> output = StringIO.new
#<StringIO:0x007fcb28629030>
> output.puts('hi')
nil
> output.string
"hi\n"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12192 次 |
| 最近记录: |