如何逐行读取ruby中的文本文件(在s3上托管)?

Tim*_* T. 30 ruby import text ruby-on-rails heroku

我知道我之前已经完成了这个,并找到了一组简单的代码,但我记不起来了:(.

我有一个我要导入Rails 3应用程序的记录的文本文件.

每行代表一条记录.可能它可能是属性的制表符分隔符,但也可以只使用一个值.

我该怎么做呢?

fl0*_*00r 43

File.open("my/file/path", "r").each_line do |line|
  # name: "Angela"    job: "Writer"    ...
  data = line.split(/\t/)
  name, job = data.map{|d| d.split(": ")[1] }.flatten
end
Run Code Online (Sandbox Code Playgroud)

相关主题

在Ruby中读取文件的常用方法是什么?

  • 这没有解决文件在s3上的问题 (3认同)

Phr*_*ogz 21

你想要IO.foreach:

IO.foreach('foo.txt') do |line|
  # process the line of text here
end
Run Code Online (Sandbox Code Playgroud)

或者,如果它确实是制表符分隔的,您可能想要使用CSV库:

File.open('foo.txt') do |f|
  CSV.foreach(f, col_sep:"\t") do |csv_row|
    # All parsed for you
  end
end
Run Code Online (Sandbox Code Playgroud)