紅寶石 3??.1.0
我正在嘗試決議 JSON 行而不破壞記憶體。我的例程什么也沒列印。我想知道我哪里出錯了。我打開一個臨時檔案來保存大檔案,我認為這是錯誤#1。但我不知道如何構造它。然后我嘗試將這個巨大的檔案從 Google 復制到我的臨時檔案中,然后一次單步執行一行。我什么也得不到……我很困惑。
哦。我想到了。copy_stream 將檔案留在 EOF。我只需要倒帶它就可以使用它。
require "tempfile"
require "open-uri"
require "json"
url = "https://storage.googleapis.com/somehugefile.jsonl"
inventory_file = Tempfile.new
inventory_file.binmode
uri = URI(url)
IO.copy_stream(uri.open, inventory_file)
f = File.foreach(inventory_file)
f.each_entry {|line| puts JSON.parse(line) }
uj5u.com熱心網友回復:
這很簡單。我不知道 copy_stream 方法將檔案指標留在檔案末尾。所以我只需要倒帶一下,一切都按預期作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/427594.html
下一篇:根據列值百分位過濾資料框行
