Comment faire une nouvelle ligne en sortie

165

Comment faire \nfonctionner ma sortie? Pour le moment, il écrit tout simplement dans 1 long bloc. Merci pour toute aide

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
la source

Réponses:

335

Utiliser à la "\n"place de'\n'

kjagiello
la source
11
Merci pour la réponse, me fait
passer pour
77
ne soyez pas si dur avec vous-même: la seule façon d'apprendre est de poser des questions.
glenn jackman
14
@babyrats - u pas le seul :)
Ninad
6
Il semble que Ruby et PHP ne développent pas les séquences d'échappement dans des chaînes entre guillemets simples.
kjagiello
2
"\ n" est une nouvelle ligne, '\ n \ est littéralement une barre oblique inverse et n.
mahemoff
12

Vous pouvez tout faire dans le bloc 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
la source
1
Je suppose qu'une chose intéressante et utile à retenir de ceci est que putsgénère une chaîne et un saut de ligne de fin "automatique"; c'est plus pratique que de l'ajouter dans le code.
Carl Smotricz
+1 pour cela et la manière agréable, à fermeture automatique et idiomatique de traiter un fichier.
Carl Smotricz
6

J'aimerais partager mon expérience avec. \n
J'ai remarqué que "\ n" fonctionne comme-

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

mais non

p "\n\n"

met également '\n\n'
ne fonctionne pas.

L'espoir fonctionnera pour vous !!

S.Yadav
la source
5

En fait, vous n'avez même pas besoin du bloc:

  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
la source