gpt4 book ai didi

ruby - 如何跳过 CSV 文件的第一行并将第二行作为标题

转载 作者:数据小太阳 更新时间:2023-10-29 07:12:02 24 4
gpt4 key购买 nike

有没有办法跳过 CSV 文件的第一行,让第二行作为标题?

我有一个 CSV 文件,第一行是日期,第二行是标题,所以我需要能够在遍历它时跳过第一行。我尝试使用 slice 但它会将 CSV 转换为数组,我真的很想将其读取为 CSV,以便我可以利用 header 。

最佳答案

根据您的数据,您可以使用另一种方法和skip_lines-option

此示例跳过所有以 # 开头的行

require 'csv'

CSV.parse(DATA.read,:col_sep=>';',:headers=>true,
:skip_lines=> /^#/ #Mark comments!
) do |row|
p row
end
#~
__END__
#~ Comment
#~ More comment
a;b;c;d
1;2;3;4
#~ More comment
1;2;3;4
#~ More comment
1;2;3;4

结果是

#<CSV::Row "a":"1" "b":"2" "c":"3" "d":"4">
#<CSV::Row "a":"1" "b":"2" "c":"3" "d":"4">
#<CSV::Row "a":"1" "b":"2" "c":"3" "d":"4">

在您的情况下,csv 包含一个日期,因此您可以使用:

require 'csv'

CSV.parse(DATA.read,:col_sep=>';',:headers=>true,
:skip_lines=> /^\d\d\d\d-\d\d-\d\d$/ #Skip line with date only
) do |row|
p row
end
#~
__END__
2016-03-19
a;b;c;d
1;2;3;4
1;2;3;4
1;2;3;4

或者你可以使用更多的扩展起跑线:

require 'csv'

CSV.parse(DATA.read,:col_sep=>';',:headers=>true,
:skip_lines=> /^Created by/ #Skip line with date only
) do |row|
p row
end

__END__
Created by test.rb on 2016-03-19
a;b;c;d
1;2;3;4
1;2;3;4
1;2;3;4

关于ruby - 如何跳过 CSV 文件的第一行并将第二行作为标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26896899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com