Как убрать лишнюю операцию открытия файла в ruby

Я создал программу ruby ​​для копирования содержимого одного файла CSV в новый файл CSV.

Это мой код -

require 'csv'
class CopyFile
  def self.create_duplicate_file(file_name)

    CSV.open(file_name, "wb") do |output_row|
      output_row << CSV.open('input.csv', 'r') { |csv| csv.first }
      CSV.foreach('input.csv', headers: true) do |row|
      output_row << row
      end
    end
  end
end

puts "Insert duplicate file name"
file_name = gets.chomp
file_name = file_name+".csv"
CopyFile.create_duplicate_file(file_name)

puts "\nDuplicate File Created."

Я открываю файл input.csv дважды, один для копирования заголовков, а затем для копирования содержимого.

Я хочу оптимизировать мой код. Так есть ли способ оптимизировать его дальше?

1 ответ

Просто используйте cp метод:FileUtils.cp(src, destination, options)Не нужно изобретать велосипед, вот так:

class CopyFile
  def self.create_duplicate_file(file_name)
    FileUtils.cp('input.csv',file_name)
  end
end

или еще лучше:

file_name = gets.chomp
file_name = file_name+".csv"
FileUtils.cp('input.csv', file_name)
Другие вопросы по тегам