Cómo hacer una nueva línea en la salida

165

¿Cómo hago para que \nrealmente funcione en mi salida? Por el momento, solo escribe todo en 1 bloque largo. Gracias por cualquier ayuda

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
babyrats
fuente

Respuestas:

335

Usar en "\n"lugar de'\n'

kjagiello
fuente
11
Gracias por la respuesta, me hace ver como un tonto pero al menos lo sé ahora
babyrats
77
no seas tan duro contigo mismo: la única forma de aprender es haciendo preguntas.
Glenn Jackman
14
@babyrats - no eres el único :)
Ninad
66
Parece que tanto Ruby como PHP no expanden las secuencias de escape en cadenas entre comillas simples.
kjagiello
2
"\ n" es nueva línea, '\ n \ es literalmente barra invertida yn.
mahemoff
12

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
Ben
fuente
1
Supongo que una cosa interesante y útil para eliminar de esto es que putsgenera una cadena y un salto de línea final "automático"; eso es más práctico que agregarlo en el código.
Carl Smotricz el
+1 por eso y la forma agradable, de cierre automático e idiomática de procesar un archivo.
Carl Smotricz
6

Me gustaría compartir mi experiencia con la \n
que llegué a notar que "\ n" funciona como-

puts "\n\n" // to provide 2 new lines

pero no

p "\n\n"

también pone '\n\n'
no funciona.

¡La esperanza funcionará para ti!

S.Yadav
fuente
5

En realidad ni siquiera necesitas 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)
Tim Breitkreutz
fuente