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

Réponses:


335

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


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

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 !!


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)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.