Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 重新排列CSV,删除旧的CSV并重新写入_Ruby_Sorting_Csv_Hash_Export To Csv - Fatal编程技术网

Ruby 重新排列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主要提供从文件读取的功能

假设我有一个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
依赖于
排序表的默认字符串化
@steenslag
to_csv
to_s
是相同的,因此,关闭
到_csv
依赖于
排序的_表的默认字符串化。