Como fazer uma nova linha na saída


165

Como faço para \nrealmente trabalhar na minha saída? No momento, apenas escreve tudo em um bloco longo. Obrigado por qualquer ajuda

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

Respostas:


335

Use em "\n"vez de'\n'


11
Obrigado pela resposta, me faz parecer um tolo, mas pelo menos agora eu sei
babyrats

77
não seja tão duro consigo mesmo: a única maneira de aprender é fazendo perguntas.
precisa saber é o seguinte

14
@babyrats - u não o único :)
Ninad

6
Parece que Ruby e PHP não expandem seqüências de escape em seqüências de caracteres entre aspas simples.
Kdagiello # 31413

2
"\ n" é nova linha, '\ n \ é literalmente barra invertida e n.
Mahemoff # 20/15

12

Você pode fazer isso tudo no bloco 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
Eu acho que uma coisa interessante e útil para tirar isso é que putsgera uma string e uma quebra de linha à direita "automática"; isso é mais prático do que anexá-lo no código.
Carl Smotricz

+1 para isso e a boa maneira idiomática de fechamento automático de processar um arquivo.
Carl Smotricz

6

Gostaria de compartilhar minha experiência e \n
percebi que "\ n" funciona como-

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

mas não

p "\n\n"

também coloca '\n\n'
Não funciona.

Espero que funcione para você !!


5

Na verdade, você nem precisa do bloco:

  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)
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.