2 votes

Obtenir les x premières lignes d'un fichier

J'essaie de récupérer les 10 premières lignes d'un fichier dans une chaîne de caractères et de les écrire dans un autre fichier.

J'en ai :

File.open("read_file.txt", "r") do |rf|
  File.open("write.txt", "w") do |wf|
    rf.each_line.with_index do |line, idx|
      break if idx > 9
      wf.puts(line)
    end
  end
end

Existe-t-il un moyen plus élégant et plus efficace de faire une pause sur un nombre de lignes spécifié ?

Idéalement, quelque chose comme file.lines(3) : String serait bien, mais elle n'est certainement pas disponible.

6voto

WPeN2Ic850EU Points 808

Voici une méthode plus élégante (mais avec la même efficacité, je crois)

File.open "read_file.txt" do |io|
  File.write "write.txt", io.each_line.first(10).join("\n")
end

2voto

r00ster Points 75

Lire les lignes du fichier avec File#read_lines et ensuite prendre les 10 premières lignes :

File.read_lines("file")[0..9]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X