ruby - 如何使用数组元素在 Ruby 中创建文件名?

标签 ruby

假设我有一个包含一些元素的数组,我想将与每个元素相关的数据保存在一个 CSV 文件中。这是我的代码:

require 'rubygems'
require 'csv'

category_ID = [-1, 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 15, 17, 18, 19, 20, 21, 91, 92, 93, 94, 101, 102, 103, 104, 105, 106, 107, 111, 112, 113, 114, 115, 116, 117, 118, 119]

CSV.foreach('C:\Users\username\Desktop\Original.csv', :headers=>true) do |row,i|
    category_ID.each {|x|}
        CSV.open('C:\Users\username\Desktop\#{x}.csv', "wb") do |csv|           
            if row[4].gsub(/^[^:]+:\s*/,"") == x
                csv << row[28].gsub(/^[^:]+:\s*/,"")
            end
        end
    end
end

所以我希望我的文件名是 -1.csv, 0.csv, 1.csv, ... , 119.csv。但由于 #{x} 作为文件名,它给出了一个错误。如何纠正这个?谢谢。

编辑:这是 Original.csv 文件中的 1 行:

"{""timestamp"""," ""2015-05-10 15",59,"59"""," ""article_category_id"""," ""106"""," ""app_name"""," ""Apple Daily TW"""," ""ip"""," ""111.80.37.218"""," ""app_id"""," ""51ee0d904055aa1539d32523"""," ""datetime"""," ""1431273612198"""," ""edition"""," """""," ""action"""," ""page_view"""," ""article_title"""," ""【溫星母親節】潘若迪竟讓老婆一個人過"""," ""user_id"""," """""," ""menu"""," ""即時新聞"""," ""lon"""," """""," ""platform"""," ""Android"""," ""country_residence"""," """""," ""version"""," ""2.5.2"""," ""page_name"""," ""【溫星母親節】潘若迪竟讓老婆一個人過"""," ""location"""," """""," ""is_registered"""," ""False"""," ""provider"""," """""," ""page_id"""," ""607814"""," ""menu_id"""," ""10002""","  ""article_category"""," ""娛樂"""," ""lat"""," """""," ""article_id"""," ""607814"""," ""country_origin"""," """""," ""udid"""," ""d0155049772de9"""," ""gender"""," """""," ""age"""," """""," ""device"""," ""C6902"""," ""session_id"""," """""," ""push"""," ""N"""," ""os"""," ""4.4.2"""," ""browser"""," """"}",,

最佳答案

这一行是空话:

category_ID.each {|x|}

我猜你想要:

category_ID.each do |x|
  CSV.open("C:\Users\Desktop\#{x}.csv", "wb") do |csv|
    if row[4].gsub(/^[^:]+:\s*/,"") == x
      csv << row[28].gsub(/^[^:]+:\s*/,"")
    end
  end
end

关于ruby - 如何使用数组元素在 Ruby 中创建文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41300766/

相关文章:

Ruby:按名称设置全局变量

ruby - gem install rmagick 在 OS X El Capitan 上失败

ruby-on-rails - 如何从 View 调用 Rails Controller 中的自定义方法

Rails 中的 HTML,对齐来自不同文件的链接和后退按钮

Ruby 正则表达式忽略第一个有效(?)匹配

ruby - 如何使用 Thor (ruby) 创建守护进程?

ruby - 100% 无休止的 CPU 使用率在没有证书的情况下获取 SSL 页面

ruby - 为什么我的 rust 程序比 ruby​​ 程序慢?

ios - 未知的ruby解释器版本(不知道如何处理): File. readFile.join__dir__,.ruby-version.strip

ruby - 如何在 Ruby 中的特定点分解数组?并留下所有剩余元素