当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby CSV.filter用法及代码示例


本文简要介绍ruby语言中 CSV.filter 的用法。

用法

filter(**options) {|row| ... }
filter(in_string, **options) {|row| ... }
filter(in_io, **options) {|row| ... }
filter(in_string, out_string, **options) {|row| ... }
filter(in_string, out_io, **options) {|row| ... }
filter(in_io, out_string, **options) {|row| ... }
filter(in_io, out_io, **options) {|row| ... }

读取 CSV 输入并写入 CSV 输出。

对于每个输入行:

  • 将数据形成为:

    • CSV::Row 对象,如果标头正在使用中。

    • 数组数组,否则。

  • 使用该对象调用块。

  • 将块的返回值附加到输出。

参数:

  • CSV 来源:

    • 参数 in_string ,如果给定,应该是一个字符串对象;它将被放入位于开头的新 StringIO 对象中。

    • 参数 in_io ,如果给定,应该是一个开放阅读的 IO 对象;返回时, IO 对象将被关闭。

    • 如果既没有给出in_string 也没有给出in_io,则输入流默认为ARGF

  • CSV 输出:

    • 参数 out_string ,如果给定,应该是一个字符串对象;它将被放入位于开头的新 StringIO 对象中。

    • 参数 out_io ,如果给定,应该是一个用于写入的 IO 对象;返回时, IO 对象将被关闭。

    • 如果既没有给出 out_string 也没有给出 out_io,则输出流默认为 $stdout

  • 参数options 应该是关键字参数。

    • 每个以in_input_ 为前缀的参数名称都被去除其前缀,并被视为解析输入的选项。选项 input_row_sep 默认为 $INPUT_RECORD_SEPARATOR

    • 每个以out_output_ 为前缀的参数名称都被去除其前缀,并被视为生成输出的选项。选项 output_row_sep 默认为 $INPUT_RECORD_SEPARATOR

    • 每个没有如上前缀的参数都被视为解析输入和生成输出的选项。

    • 请参阅解析选项和生成选项。

例子:

in_string = "foo,0\nbar,1\nbaz,2\n"
out_string = ''
CSV.filter(in_string, out_string) do |row|
  row[0] = row[0].upcase
  row[1] *= 4
end
out_string # => "FOO,0000\nBAR,1111\nBAZ,2222\n"

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 CSV.filter。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。