2010-01-13 8 views
138

¿Cómo realizo que \n realmente funcione en mi salida? Por el momento, simplemente lo escribe todo en 1 bloque largo. Gracias por cualquier ayudaCómo hacer una nueva línea en la salida

Dir.chdir 'C:/Users/name/Music' 
music = Dir['C:/Users/name/Music/*.{mp3, MP3}'] 
puts 'what would you like to call the playlist?' 
@new = '' 
playlist_name = gets.chomp + '.m3u' 

music.each do |z| 
    @new += z + '\n' 
end 

File.open playlist_name, 'w' do |f| 
    f.write @new 
end 

Respuesta

286

Uso "\n" en lugar de '\n'

+8

Gracias por la respuesta, me hace parecer un tonto, pero al menos ahora sé – babyrats

+61

no seas tan duro contigo mismo: la única forma de aprender es haciendo preguntas. –

+13

@babyrats - no eres el único :) – Ninad

12

Usted puede hacer todo esto en el bloque File.open:

Dir.chdir 'C:/Users/name/Music' 
music = Dir['C:/Users/name/Music/*.{mp3, MP3}'] 
puts 'what would you like to call the playlist?' 
playlist_name = gets.chomp + '.m3u' 

File.open playlist_name, 'w' do |f| 
    music.each do |z| 
    f.puts z 
    end 
end 
+1

Supongo que una cosa interesante y útil de tomar de esto es que 'puts' produce una cadena y un salto de línea final" automático "; eso es más útil que agregarlo en el código. –

+0

+1 para eso y la forma agradable, de cierre automático e idiomática de procesar un archivo. –

+0

Gracias por esto. Muy útil. – babyrats

5

En realidad, usted ni siquiera necesita el bloque:

Dir.chdir 'C:/Users/name/Music' 
    music = Dir['C:/Users/name/Music/*.{mp3, MP3}'] 
    puts 'what would you like to call the playlist?' 
    playlist_name = gets.chomp + '.m3u' 

    File.open(playlist_name, 'w').puts(music) 
Cuestiones relacionadas