Простой вопрос: прочитать файл, перевернуть его и записать в другой файл в Ruby - PullRequest
6 голосов
/ 10 августа 2010

У меня есть:

 o = File.new("ouput.txt", "rw+")
 File.new("my_file.txt").lines.reverse_each { |line|
       ?????  line 
 }
 o.close

Я не знаю, какой метод использовать для записи в файл вывода o

Ответы [ 4 ]

6 голосов
/ 10 августа 2010

puts понимает массивы, поэтому вы можете упростить это до:

File.open("f2.txt","w") {|o| o.puts File.readlines("f1.txt").reverse}
0 голосов
/ 08 марта 2013

Для больших файлов избегайте использования readlines, так как это будет очень медленно / неэффективно.Подумайте об использовании такого драгоценного камня как Elif для такого рода вещей.

0 голосов
/ 10 августа 2010

Ты захочешь сделать что-то более похожее ...

new_text = File.readlines('my_file').reverse.join
File.open('my_file', 'w+') { |file| file.write(new_text) }

Изучите эту документацию , чтобы понять, что означает w+.

0 голосов
/ 10 августа 2010

Я знал, что это легко, но я не совсем понимаю, почему не задокументировано здесь ?

o = File.new("ouput.txt", "w+")
File.new("my_file.txt").lines.reverse_each { |line|
    o.puts line 
}
o.close
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...