如何使用$ stdout

时间:2010-07-10 05:49:06

标签: ruby

filename = "#{k}""/kabab" 
extension = ".txt" 

for i in 1..10 
  $stdout=File.open("#{filename}#{co}#{extension}" ,'w')
  puts "sachin"
end

puts "amit"

我的问题是在最后一个文件中意味着kabab 10.text正在获得像sachin和amit这样的输出 但我不希望amit在第10个文件中如何解决它?

3 个答案:

答案 0 :(得分:1)

请勿更改$stdout,当然也不要将旧值存储在某处,以便在完成后将其恢复。

而是在文件对象上调用puts

File.open("#{filename}#{co}#{extension}" ,'w') do |file|
  10.times do
    file.puts "sachin" # This goes to the file
  end
end

puts "amit" # This goes to standard output

答案 1 :(得分:0)

尝试使用puts将sachin放入文件中。

$f = File.open("#{filename}#{co}#{extension}" ,'w')
$f.puts "sachin"

答案 2 :(得分:0)

我编辑你的问题,但我不认为你在循环中使用它时如何获得所有文件中的amit。但是如果你将puts "amit"放在for loop中,我希望以下帮助你

puts "amit" if i != 10

编辑: - 你喜欢跟随

之类的东西吗?
filename = "kabab" 
extension = ".txt" 

puts "amit"

for i in 1..10 
  $stdout=File.open("#{filename}#{i}#{extension}" ,'w')
    puts "sachin"

end