相关疑难解决方法(0)

如何在Ruby中临时重定向stderr?

我想暂时在一个块的持续时间内将stderr重定向到Ruby脚本中,确保在块结束时将其重置为原始值.

我很难在ruby文档中找到如何做到这一点.

ruby stderr

43
推荐指数
4
解决办法
2万
查看次数

如何将STDOUT捕获到字符串?

puts "hi"
puts "bye"
Run Code Online (Sandbox Code Playgroud)

我想存储到目前为止的代码的STDOUT(在这种情况下,hi \nbye变成一个变量说'结果'并打印出来)

puts result
Run Code Online (Sandbox Code Playgroud)

我这样做的原因是我已经将R代码集成到我的Ruby代码中,当R代码运行时,其输出被提供给STDOUT,但是在代码内部无法访问输出以进行一些评估.对不起,如果这令人困惑.因此,"放置结果"这一行应该让我高兴和再见.

ruby stdio

35
推荐指数
4
解决办法
2万
查看次数

漂亮打印到ruby中的文件

我试图将哈希打印到文件.

我尝试了unix重定向[逐步添加不同的标志]:

`echo #{pp  mymap} | tee summary.out 2>&1`
Run Code Online (Sandbox Code Playgroud)

和文件IO

 my_file = File.new(@dir_+"/myfile.out",'w+')          
 my_file.puts `#{pp get_submap_from_final(all_mapping_file,final_map)}`
Run Code Online (Sandbox Code Playgroud)

它总是打印到控制台并且不写入文件.

还有一种更简单的方法可以在ruby中的一行中写入文件吗?而不是做File.new然后写入文件?

ruby file-io pretty-print

23
推荐指数
2
解决办法
1万
查看次数

ruby:打开文件对象到stdout

我是Ruby的新手,我正在尝试打开一个File指向的对象stdout.

我从这个问题中知道,重定向stdout到指向a File非常简单,但是重定向File到指向的是stdout什么?

我正在编写一个程序,我正在考虑为用户提供将部分输出写入文件的选项.如果他们选择该选项,则应写入所有输出stdout.

看到这个伪代码:

if output redirect option is selected
    o = File.open('given filename','w')
else
    o = File.open($stdout, 'w')
end
Run Code Online (Sandbox Code Playgroud)

这是一个可能的用例的伪代码:

puts 'Generating report for XYZ'
report = ReportGenerator::generateReport('XYZ')
o.puts report
Run Code Online (Sandbox Code Playgroud)

如您所见,如果未指定输出重定向选项,我只o希望将报告放入stdout.在"生成报告"消息,但是,我需要仍然被打印到stdout,所以重定向stdout将是麻烦的,尤其是因为我有更多的消息,并有更多的地方,其中我(可能)的输出流之间交替.

o = File.open($stdout, 'w') 是我不确定的部分.

ruby io stdout file

4
推荐指数
1
解决办法
1607
查看次数

如何在Ruby中的进程调用中单独获取STDOUT和STDERR?

我想从我的Ruby脚本中运行一个程序,但我想分别捕获程序的STDOUT和STDERR,而不是混合它们,因此2>&1在命令shell上执行操作不会对我有用.

我真的不想将这些指向tempfile并将tempfile读回我的脚本.有没有办法可以直接在我的Ruby脚本中获取这两个?

ruby

2
推荐指数
1
解决办法
1567
查看次数

如何在 Ruby 中关闭 $stdout 和 $stderr

是否可以关闭 $stdout 和 $stderr 并且不将其重定向到文件;只需将其关闭,这样它就不会在任何地方打印任何内容?

我已经尝试过以下代码,但它只是错误error: Invalid argument

$stderr = IO.new(0,"w")
$stdout = IO.new(0,"w")
Run Code Online (Sandbox Code Playgroud)

ruby stdout stderr

1
推荐指数
1
解决办法
1283
查看次数

标签 统计

ruby ×6

stderr ×2

stdout ×2

file ×1

file-io ×1

io ×1

pretty-print ×1

stdio ×1