如何在输出中进行换行


165

如何\n在输出中实际起作用?目前,它只是将其全部写入一个长块中。谢谢你的帮助

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

Answers:


335

使用"\n"代替'\n'


11
感谢您的回答,使我看起来像个笨蛋,但我现在至少知道了
babyrats 2010年

77
不要对自己如此刻薄:学习的唯一方法就是问问题。
格伦

14
@babyrats - U不是唯一的一个:)
Ninad

6
似乎Ruby和PHP都不会在单引号字符串中扩展转义序列。
kjagiello 2013年

2
“ \ n”是换行符,“ \ n \”实际上是反斜杠和n。
mahemoff 2015年

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输出一个字符串和一个“自动”尾随换行符。这比将其附加到代码中更为方便。
卡尔·斯莫特里奇

+1以及一种很好的,自动关闭的惯用方式来处理文件。
卡尔·斯莫特里奇

6

我想与\n
我分享自己的经验,发现“ \ n”的工作方式如下:

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

但不是

p "\n\n"

也把'\n\n'
不起作用。

希望能为您服务!


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)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.