Как работать с $ stdout - PullRequest
       1

Как работать с $ stdout

0 голосов
/ 10 июля 2010
filename = "#{k}""/kabab" 
extension = ".txt" 

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

puts "amit"

что моя проблема в последнем файле означает, что kabab10.txt я получаю вывод, как sachin и amit, но я не хочу, чтобы в 10-м файле были слова о том, как ее решить`

Ответы [ 3 ]

1 голос
/ 10 июля 2010

Не изменяйте $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
0 голосов
/ 10 июля 2010

я редактирую ваш вопрос, но я не думаю, что вы получаете ударение во всех ваших файлах, когда вы используете его из цикла. Но я надеюсь, что следующее поможет вам, если вы введете 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
0 голосов
/ 10 июля 2010

Попробуйте использовать puts, чтобы поместить sachin в файлы.

$f = File.open("#{filename}#{co}#{extension}" ,'w')
$f.puts "sachin"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...