Cách thực hiện một dòng mới trong đầu ra


165

Làm thế nào để tôi thực \nsự làm việc trong đầu ra của tôi? Hiện tại nó chỉ viết tất cả trong 1 khối dài. Cảm ơn vì bất kì sự giúp đỡ

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

Câu trả lời:


335

Sử dụng "\n"thay vì'\n'


11
Cảm ơn câu trả lời, làm cho tôi trông giống như một kẻ ngốc nhưng ít nhất bây giờ tôi biết
babyrats

77
đừng quá khó khăn với bản thân: cách duy nhất để học là đặt câu hỏi.
glenn jackman

14
@babyrats - bạn không phải là người duy nhất :)
Ninad

6
Dường như cả Ruby và PHP đều không mở rộng các chuỗi thoát trong các chuỗi được trích dẫn.
kjagiello

2
"\ n" là dòng mới, '\ n \ có nghĩa là dấu gạch chéo ngược và n.
mahemoff

12

Bạn có thể làm tất cả điều này trong khối 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
Tôi đoán một điều thú vị và hữu ích để loại bỏ điều này là putsđầu ra một chuỗi và ngắt dòng "tự động"; đó là thủ công hơn là gắn nó vào mã.
Carl Smotricz

+1 cho điều đó và cách dễ dàng, tự động đóng, thành ngữ để xử lý tệp.
Carl Smotricz

6

Tôi muốn chia sẻ kinh nghiệm của mình với \n
tôi đã nhận thấy rằng "\ n" hoạt động như-

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

nhưng không

p "\n\n"

cũng '\n\n'
không hoạt động.

Hy vọng sẽ làm việc cho bạn !!


5

Trên thực tế, bạn thậm chí không cần khối:

  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)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.