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

Respuestas:


335

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


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

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!


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)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.