So erstellen Sie eine neue Zeile in der Ausgabe


165

Wie kann ich dafür sorgen, \ndass meine Ausgabe tatsächlich funktioniert? Im Moment schreibt es einfach alles in einem langen Block. Vielen Dank für jede Hilfe

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

Antworten:


334

Verwenden Sie "\n"anstelle von'\n'


11
Vielen Dank für die Antwort, lässt mich wie ein Idiot aussehen, aber zumindest weiß ich jetzt
Babyrats

77
Sei nicht so hart zu dir selbst: Der einzige Weg zu lernen ist, Fragen zu stellen.
Glenn Jackman

14
@abyrats - u nicht der einzige :)
Ninad

6
Es scheint, dass sowohl Ruby als auch PHP Escape-Sequenzen in einfachen Anführungszeichen nicht erweitern.
Kjagiello

2
"\ n" ist Zeilenumbruch, '\ n \ ist buchstäblich Backslash und n.
Mahemoff

12

Sie können dies alles im Block File.open tun:

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
Ich denke, eine interessante und nützliche Sache ist, dass putsein String und ein "automatischer" Zeilenumbruch ausgegeben werden. Das ist einfacher als das Anhängen in Code.
Carl Smotricz

+1 dafür und die nette, automatisch schließende, idiomatische Art, eine Datei zu verarbeiten.
Carl Smotricz

6

Ich möchte meine Erfahrungen mit \n
Ihnen teilen. Ich habe festgestellt, dass "\ n" funktioniert.

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

aber nicht

p "\n\n"

setzt auch '\n\n'
funktioniert nicht.

Hoffnung wird für Sie arbeiten !!


5

Eigentlich brauchst du nicht mal den Block:

  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)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.