2010-01-13 85 views
138

我如何讓\n在我的輸出中實際工作?目前它只是把它寫在1個長塊中。感謝您的幫助如何在輸出中執行換行

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 

回答

286

使用"\n"而不是'\n'

+8

感謝您的回答,讓我看起來像一個傻瓜,但至少我現在知道 – babyrats 2010-01-13 21:18:35

+61

對自己不要太難:唯一的學習方法是提問。 – 2010-01-13 21:58:20

+13

@babyrats - 你不是唯一一個:) – Ninad 2011-09-14 10:57:07

12

你可以做到這一切在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

我猜想一個有趣而有用的東西是,'puts'輸出一個字符串和一個「自動」拖尾行;這比在代碼中添加它更方便。 – 2010-01-13 21:12:45

+0

+1以及用於處理文件的自動關閉慣用方法。 – 2010-01-13 21:13:35

+0

謝謝你。很有幫助。 – babyrats 2010-01-13 21:17:56

5

其實你甚至不需要塊:

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)