Come fare una nuova riga in output


165

Come faccio a far \nfunzionare effettivamente il mio output? Al momento scrive tutto in 1 blocco lungo. Grazie per qualsiasi aiuto

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

Risposte:


335

Usa "\n"invece di'\n'


11
Grazie per la risposta, mi fa sembrare uno sciocco ma almeno ora lo so
babyrats

77
non essere così duro con te stesso: l'unico modo per imparare è porre domande.
Glenn Jackman,

14
@babyrats - non sei l'unico :)
Ninad

6
Sembra che sia Ruby che PHP non espandano le sequenze di escape in stringhe tra virgolette singole.
kjagiello,

2
"\ n" è newline, '\ n \ è letteralmente barra rovesciata e n.
mahemoff,

12

Puoi fare tutto questo nel blocco 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
Immagino che una cosa interessante e utile da togliere a questo sia l' putsoutput di una stringa e un'interruzione di riga finale "automatica"; è più pratico che aggiungerlo nel codice.
Carl Smotricz,

+1 per questo e il modo simpatico, auto-chiudente e idiomatico per elaborare un file.
Carl Smotricz,

6

Vorrei condividere la mia esperienza con \n
sono venuto a notare che "\ n" funziona come-

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

ma no

p "\n\n"

mette anche '\n\n'
non funziona.

Spero funzionerà per te !!


5

In realtà non hai nemmeno bisogno del blocco:

  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)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.