當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。