Jak zrobić nowy wiersz na wyjściu


165

Jak sprawić, by \nmoje wyjście faktycznie działało? W tej chwili zapisuje to wszystko w 1 długim bloku. Dzięki za wszelką pomoc

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

Odpowiedzi:


335

Użyj "\n"zamiast'\n'


11
Dzięki za odpowiedź, sprawia, że ​​wyglądam na głupka, ale przynajmniej teraz wiem
babyrats

77
nie bądź dla siebie taki surowy: jedynym sposobem na naukę jest zadawanie pytań.
glenn jackman

14
@babyrats - nie jesteś jedyny :)
Ninad

6
Wygląda na to, że zarówno Ruby, jak i PHP nie rozwijają sekwencji specjalnych w łańcuchach z pojedynczymi cudzysłowami.
kjagiello

2
„\ n” to znak nowej linii, „\ n \ to dosłownie ukośnik odwrotny, a n.
mahemoff

12

Możesz to wszystko zrobić w bloku 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
Wydaje mi się, że jedną interesującą i użyteczną rzeczą, którą można z tego putswyciągnąć , jest wypisanie łańcucha i „automatycznego” końca wiersza; jest to wygodniejsze niż dołączanie go do kodu.
Carl Smotricz

+1 za to i przyjemny, automatycznie zamykający się, idiomatyczny sposób przetwarzania pliku.
Carl Smotricz

6

Chciałbym się z nią podzielić swoim doświadczeniem. \n
Zauważyłem, że „\ n” działa jako-

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

ale nie

p "\n\n"

również stawia '\n\n'
Nie działa.

Mam nadzieję, że zadziała dla Ciebie !!


5

Właściwie nie potrzebujesz nawet bloku:

  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)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.