Як зробити новий рядок у виході


165

Як змусити \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

Відповіді:


335

Використовуйте "\n"замість'\n'


11
Дякую за відповідь, робить мене схожим на дурня, але, принаймні, я зараз знаю
babyrats

77
не будьте настільки важкими для себе: єдиний спосіб вчитися - це задавати питання.
glenn jackman

14
@babyrats - u не єдиний :)
Ninad

6
Схоже, що і Ruby, і PHP не розширюють послідовності евакуації в одних цитованих рядках.
kjagiello

2
"\ n" - це новий рядок, "\ n \ - це буквально зворотний проріз і n.
mahemoff

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)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.