0

我制作了一个 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 文件两次,一次是复制标题,然后是复制内容。

我想优化我的代码。那么有没有办法进一步优化呢?

4

1 回答 1

-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)
于 2017-07-11T09:02:08.027 回答