Chciałbym pobrać plik przez protokół HTTP
przy użyciu urllib3
. udało mi się zrobić to za pomocą następującego kodu:Jaki jest najlepszy sposób pobrania pliku za pomocą urllib3
url = 'http://url_to_a_file'
connection_pool = urllib3.PoolManager()
resp = connection_pool.request('GET',url)
f = open(filename, 'wb')
f.write(resp.data)
f.close()
resp.release_conn()
Ale zastanawiałem się, co jest prawidłowe sposób to zrobić. Na przykład będzie działać dobrze w przypadku dużych plików i jeśli nie, co zrobić, aby ten kod był bardziej odporny na błędy i skalowalny.
Uwaga. Na przykład ważne jest, aby używać biblioteki urllib3
, a nie urllib2
, ponieważ chcę, aby mój kod był bezpieczny dla wątków.
Dobrze. Dziękuję za odpowiedź. –
I jeszcze jedno pytanie. Czy będzie działać z metodą POST, jeśli dodaję 'r = http.request ('POST', url)'? –
@ running.t Err, to był błąd w moim kodzie. Masz rację, metoda powinna iść pierwsza, a twój fragment będzie działał. (Zaktualizowałem moją odpowiedź.) – shazow