【发布时间】:2019-05-02 21:11:10
【问题描述】:
我希望将数组作为单行传递到 csv 中。下面的代码展示了我目前正在尝试的内容。该数组的长度是可变的,并且会展示类似这样的内容。
a = ["website url", "page link", "page link", "page link"]
代码本质上是使用 open-uri 进入一个页面并刮掉每个页面的链接。这用于内部验证并根据我们的预期进行检查。如果链接与我们期望的匹配,它会作为上面显示的页面链接变量报告到 csv 中。
我目前尝试使用 to_csv 来格式化数据,但在 csv 中,所有内容都在一行中,包括我的逗号分隔符。
def dwrite (array)
CSV.open("filename.csv", "ab") do |csv|
data = array.to_csv(row_sep: nil)
csv << [data]
end
end
这是 csv 在单列中的示例:
https://www.url.com/example-page.html
#,
#,,
#,,,
#,,,,
#,,,,,
#,,,,,,
#,,,,,,,
#,,,,,,,,
#,,,,,,,,,
#,,,,,,,,,,
#,,,,,,,,,,,
#,,,,,,,,,,,,
#,,,,,,,,,,,,,
#,,,,,,,,,,,,,,
#,,,,,,,,,,,,,,,
https://anotherexamplepage.html
我希望传递给该方法的每个数组元素都显示在同一行,但事实并非如此。任何帮助将不胜感激。
【问题讨论】:
-
你不能简单地使用stackoverflow.com/questions/4822422/output-array-to-csv-in-ruby
-
s = a.join(',') #=> "website url,page link,page link,page link"。您只是想将s写入文件吗?如果是这样,为什么还要使用 CSV?File.write(fname, s)就是你所需要的。 -
不幸的是,由于该方法在此过程中被多次调用,我不确定 File.write 是否有效。我确实认为 a.join 方法会。谢谢!!如果您想将其作为解决方案发布,一旦我对其进行测试,我将接受它作为答案。
标签: ruby