我需要使用ruby创建逗号分隔文件。数据来自MySQL数据库。建立逗号分隔文件
所以一个例子文件看起来像:
userid, username, firstname, lastname, tags 2343,blankman, blank, man, "hello world tags-here"
我需要使用ruby创建逗号分隔文件。数据来自MySQL数据库。建立逗号分隔文件
所以一个例子文件看起来像:
userid, username, firstname, lastname, tags 2343,blankman, blank, man, "hello world tags-here"
有一个标准CSV库:
http://ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html
http://ruby-doc.org/stdlib/libdoc/csv/rdoc/classes/CSV.html
或FasterCSV:
它可以用这样的方式:
csv_string = FasterCSV.generate do |csv|
csv << ["row", "of", "CSV", "data"]
csv << ["another", "row"]
# ...
end
或
csv_string = FasterCSV.generate do |csv|
my_array.each do |item|
csv << [item['name'], item['phone_number']]
end
end
假设rows
是数组的数组:
require 'csv'
comma_separated = CSV.generate {|csv| rows.each {|row| csv << row}}
你也可以简单地输出从数据库中的数据到CSV直接与这样的文件:
find_by_sql(["SELECT userid, username, firstname, lastname, tags FROM blankman_table INTO OUTFILE ? FIELDS TERMINATED BY \',\' LINES TERMINATED BY \'\\n\'", filename])
不是很性感,但我已经找到了MySQL的CSV一代不如Ruby的FasterCSV库快得多。