4

ruby 2.0.0 と rails 4.0.0 を使用しています。私はこれに似たものを持っています:

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 ファイルの最初の行のみです。できればヘッダーを無視して、このファイルを行ごとに読み取る必要があります。

ファイルをローカルにダウンロードせずに、ファイルを行ごとに読み取るにはどうすればよいですか?

4

3 に答える 3

0

私の場合、次のようなものが機能しました:

data = sftp.download!("/path/to/remote/file.csv").split(/\n/).map{ |e| e.split(/,/).map{ |x| x.gsub(/"/, "")} }

data.each do |line|
  puts line
end

また、.csv の各行を異なる配列列に分割し、余分な "" を削除します。これは、改行が \n である Mac 用であることに注意してください。

于 2015-10-08T22:55:02.277 に答える