Ruby on Rails 从 CSV 迁移到 FasterCSV

发布于 2024-08-21 17:47:13 字数 224 浏览 8 评论 0原文

我目前有以下代码来使用标准 csv 库解析 csv 文件,

@parsed_file=CSV::Reader.parse(params[:dump][:file])
@parsed_file.each  do |row|
#some code
end

我想将其移动到更快的 csv 以提高速度。有谁知道 FasterCSV 与上述等效的内容吗?

谢谢

I currently have the following code to parse a csv file using the standard csv library

@parsed_file=CSV::Reader.parse(params[:dump][:file])
@parsed_file.each  do |row|
#some code
end

I want to move this to faster csv for the increased speed. Does anyone know the equivalent of the above for FasterCSV?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

仅一夜美梦 2024-08-28 17:47:13
CSV::Reader.parse(File.open('file.csv')){|row| puts row} 
or
CSV::Reader.parse("some, content\nanother, content"){|row| puts row} 

FasterCSV.parse(File.open('file.csv')){|row| puts row}
or
FasterCSV.parse("some, content\nanother, content"){|row| puts row}

是等价的。

但是

FasterCSV.read('filename') 

将文件名作为参数并从文件中读取和解析数据,但是当您在参数中传递数据时转储文件内容

@parsed_file = FasterCSV.parse(params[:dump][:file])
@parsed_file.each do |row| 
  puts row
  # and do some operations
end

应该可以正常工作。

CSV::Reader.parse(File.open('file.csv')){|row| puts row} 
or
CSV::Reader.parse("some, content\nanother, content"){|row| puts row} 

and

FasterCSV.parse(File.open('file.csv')){|row| puts row}
or
FasterCSV.parse("some, content\nanother, content"){|row| puts row}

are equivalent.

But

FasterCSV.read('filename') 

takes filename as parameter and reads and parse data from the file however you are dumping the file content as you are passing data in the parameter

@parsed_file = FasterCSV.parse(params[:dump][:file])
@parsed_file.each do |row| 
  puts row
  # and do some operations
end

should work fine.

白况 2024-08-28 17:47:13

要使用文件路径(如您所看到的那样)执行此操作:

FasterCSV.read(params[:dump][:file])

您可以检查 FasterCSV 文档 以获取其他信息执行此操作的方法(例如,在解析时处理每一行,或者从字符串而不是文件中读取)。

To do it with a file path (as you appear to be):

FasterCSV.read(params[:dump][:file])

You can check the FasterCSV docs for other ways to do it (e.g., process each row as it's parsed, or read from a string instead of a file).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文