我正在使用ruby 2.0.0和rails 4.0.0。我有一些与此类似:ruby net-sftp按行读取文件
require 'net/sftp'
sftp = Net::SFTP.start('ftp.app.com','username', :password => 'password')
sftp.file.open("/path/to/remote/file.csv", "r") do |f|
puts f.gets
end
这将打开FTP站点的文件,但只有puts
它CSV文件的第一行。我需要逐行阅读这个文件,最好忽略头文件。
如何在不本地下载文件的情况下逐行读取文件?
data = sftp.download!("/path/to/remote/file.csv").split(/\r\n/)
data.each do |line|
puts line
end
您的解决方案似乎不符合您的要求“无需下载文件?” – meagar
我编辑我的问题添加“本地”。这种方法只是将文件下载到内存中,所以没有必须存储的文件的物理副本。 – Luigi