2017-04-19 3 views
1

これは愚かな質問だと思いますが、私はgoogleとここでは運がないと答えて検索しようとしました。http.clientを使用してファイルを取得した後にファイルを保存する方法

したがって、http.clientパッケージでGetリクエストを使用してAPIに接続しています。

get要求は、zipedファイルを持つアドレスに送信されます。リクエストを送信するとOKになり、返されたオブジェクトが返されます。私が次にやりたいことは、返されたファイルを単にフォルダに保存することです。

私はhttp.clientのドキュメントでそれについて何かを見つけることを試みました。

これはコードの例です。私は、プライバシー保護のため、それの一部を削除しなければなりませんでしたコードは[OK]を実行しますが、私の問題は、次に何をすべきかである

conn = http.client.HTTPConnection("Adress to the server") 

headers = { 
    'cache-control': "no-cache", 
    } 

conn.request("GET", path_to_file + "?authTicket=" + ticket, 
headers=headers) 

res = conn.getresponse() 

return res 

を理由から。

data = res.read() 
data = data.decode("uft-8") 

そして、スクリプト内でそれに取り組むことができるよう:返されたデータは、私はちょうどのような何かをするだろう普通のJSONファイルだった場合。しかし、返されるzipされたファイルをどのようにハンドリングするのか分かりません。私は理想的には保存する前に解凍したいと思っていますが、始めにファイルに保存しても構いません。

誰かがこれに対する簡単な解決策を望むことを望みます。

私はそれに多くのビットを見ていた、と返されたオブジェクトに()getheadersを使用したとき、私はこの取得:それは関連性があるかどうかわから

[('Date', 'Wed, 19 Apr 2017 13:48:41 GMT'), 
('Content-Type', 'application/octet-stream; charset=UTF-8'), 
('Content-Disposition', 'attachment;filename=filename.csv.gz'), 
('Content-Length', '2117014'), 
('Server', 'Jetty(9.2.17.v20160517)')] 

イムないが、私は私が今必要があるだろうと思います添付ファイルをダウンロードする方法。

答えて

0

あなたは、Pythonで簡単にzipファイルを解凍することができます:あなたはこの動作を確認することができます

https://docs.python.org/3/library/zipfile.html

+0

import requests from zipfile import ZipFile import io my_request = requests.get(URL) ficheiro = ZipFile(io.BytesIO(my_request.content)) ficheiro.extract('file_name') 

をあなたはここにzipfileモジュールとzipfile.ZipFileクラスに関する詳細情報を取得することができます例えば、iPhone/Pythonista用の私のプロジェクトPT-Trackingでは、iPhoneがsqliteデータベースのサブセットを表示したり、さらにオフラインで処理したりすることができます:https://github.com/victordomingos/PT-Tracking/tree/master/ctt_tr acking_iPhone –

+0

okですので、ファイルを解凍しても問題ありませんが、返されたオブジェクトからファイルを取得する方法についてのヒントはありますか?サンプルコードでは、リクエストパッケージへのURLを渡すだけです。ファイル名= filename.csv.gzにアクセスするには – Siesta

+0

巨大なファイルではなく、コンピュータのRAMに適合していれば、受け取った直後にメモリから直接抽出することができます。しかし、以前に保存したzipまたはgzipファイルを開いて抽出するのも簡単です。参照:https://docs.python.org/3.6/library/zipfile.html#zipfile.ZipFile.open –

関連する問題