2016-05-03 28 views
1

自分のftpサーバーにあるファイルを解凍しようとしています。これによりファイルを解凍してftpからダウンロード

ftp=ftplib.FTP('myftplink') 
ftp.login('username','password') 

for filename in files_list: 
    os.chdir(dir) 
    local_file=os.path.join(os.getcwd(),filename) 
    ftp.retrbinary('RETR %s'%filename,open(filename,'wb').write) 

    with zipfile.ZipFile(filename,'r') as z: 
     z.extractall() 

私は、zipファイルをダウンロードし、フォルダに解凍だけ解凍したファイルではなく、ダウンロードしたzipファイルを解凍してダウンロードする方法がありますがあります。

+0

FTPは、サーバー側で「解凍」をサポートしていません。圧縮ファイルをダウンロードして解凍ファイルをアップロードすることもできますが、そのポイントは何ですか? – Kupiakos

答えて

2

一般的に、このFTPライブラリをpythonやFTPで使用してアーカイブを解凍することはできません。解凍は、クライアント側またはサーバー側で行わなければなりません。あなたのプログラムがダウンロードしようとしている圧縮されたアーカイブのサイズを評価した後に、どこにできるかに関する情報に基づいた決定。

SSHを使用するなど、リモートサーバー上でコマンドを実行する権限とアクセス権が必要になります。リモートホスト上でSSHサーバが稼働している場合には、fabricを使用して、必要なファイルを解凍するか、他のコマンドを実行してから、現在使用しているライブラリを使用してFabric::putSCPまたはFTP経由でファイルをダウンロードできます。

関連する問題