Ruby 重新排列CSV,删除旧的CSV并重新写入
假设我有一个CSV文件Ruby 重新排列CSV,删除旧的CSV并重新写入,ruby,sorting,csv,hash,export-to-csv,Ruby,Sorting,Csv,Hash,Export To Csv,假设我有一个CSV文件 Name,Age john,20 ana,30 steven,25 frank,27 如果我想根据“年龄”值按降序排列,得到这样的东西,那该怎么办 Name,Age ana,30 frank,27 steven,25 john,20 然后删除所有CSV行并根据新顺序重写它们 我知道如何从CSV创建哈希并对其排序,但不知道如何实现所描述的结果。。您可以使用它读取、排序和写入CSV文件。CSV类是一个包装器CSV::Table处理数据本身,而CSV主要提供从文件读取的功能
Name,Age
john,20
ana,30
steven,25
frank,27
如果我想根据“年龄”值按降序排列,得到这样的东西,那该怎么办
Name,Age
ana,30
frank,27
steven,25
john,20
然后删除所有CSV行并根据新顺序重写它们
我知道如何从CSV创建哈希并对其排序,但不知道如何实现所描述的结果。。您可以使用它读取、排序和写入CSV文件。CSV
类是一个包装器CSV::Table
处理数据本身,而CSV
主要提供从文件读取的功能
require 'csv'
orig_table = CSV.table("test.csv");
orig_table
是一个CSV::table
对象。不幸的是,您无法直接对其行进行适当排序,但可以将它们排序为CSV::Row
对象数组,并将其放入新的CSV::Table
sorted_rows = orig_table.sort { |a,b| b[:age] <=> a[:age] }
sorted_table = CSV::Table.new(sorted_rows)
。您可以使用它读取、排序和写入CSV文件。CSV
类是一个包装器CSV::Table
处理数据本身,而CSV
主要提供从文件读取的功能
require 'csv'
orig_table = CSV.table("test.csv");
orig_table
是一个CSV::table
对象。不幸的是,您无法直接对其行进行适当排序,但可以将它们排序为CSV::Row
对象数组,并将其放入新的CSV::Table
sorted_rows = orig_table.sort { |a,b| b[:age] <=> a[:age] }
sorted_table = CSV::Table.new(sorted_rows)
可能会有帮助help@steenslag
to_csv
和to_s
是相同的,因此取消to_csv
依赖于排序表的默认字符串化@steenslagto_csv
和to_s
是相同的,因此,关闭到_csv
依赖于排序的_表的默认字符串化。