2010-09-20 9 views

Respuesta

21
IO.popen("Generate a list of files").readlines.map(&:chomp) 
3
IO.read("something").split($/) 

$/es la cadena de separación. IO.read cierra el archivo después de leer.

+0

Sólo una nota que '$ /' 'partidos \ n 'nuevas líneas estrictamente mientras chomp maneja' \ r \ n' también. Si sabes que solo tendrás líneas nuevas '\ n', esta solución es _mucho_ más rápida que la opción map/chomp. –

0

que lo haría más rápido y consume menos memoria:

  1. uso "each_line" en lugar de "readlines.each". ¿Por qué leer todo el resultado a la vez?
  2. use "chomp!" (signo de exclamación) para cambiar la cadena en el lugar.

entonces es:

IO.popen("generate_lines").each_line { |line| 
    line.chomp! 
    do_something_with line 
} 
2
# Example 1 
File.readlines("file.txt").each{|line| line.chomp!} 

# Example 2 
File.readlines("file.txt").map(&:chomp) 

# Example 3 
File.open("file.txt", "r"){|file| file.readlines.collect{|line| line.chomp}} 
Cuestiones relacionadas