Как убрать лишнюю операцию открытия файла в 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)