Python download file
Table of contents:
wgetto download file
requeststo download file
- Unzip a file after download
To download a file in Python you can do many things. Here are some options:
wget to download file
You will need to install wget first:
pip install wget since wget is not in standard library.
import wget url = 'https://files.pythonhosted.org/packages/68/75/d1d7b7340b9eb6e0388bf95729e63c410b381eb71fe8875cdfd949d8f9ce/setuptools-45.2.0.zip' # wget.download(url) in case we just like to use the default file name wget.download(url, out='file.zip') # will use file.zip as output file name
wget.download signature is:
def download(url, out=None, bar=bar_adaptive): """High level function, which downloads URL into tmp file in current directory and then renames it to filename autodetected from either URL or HTTP headers. :param bar: function to track download progress (visualize etc.) :param out: output filename or directory :return: filename where URL is downloaded to """
requests to download file
import requests url = 'https://files.pythonhosted.org/packages/68/75/d1d7b7340b9eb6e0388bf95729e63c410b381eb71fe8875cdfd949d8f9ce/setuptools-45.2.0.zip' response = requests.get(url, allow_redirects=True) # nostream with open('file.zip', 'wb') as handle: handle.write(response.content)
Download file with progress bar
from tqdm import tqdm import requests url = 'https://files.pythonhosted.org/packages/68/75/d1d7b7340b9eb6e0388bf95729e63c410b381eb71fe8875cdfd949d8f9ce/setuptools-45.2.0.zip' response = requests.get(url, stream=True) with open('file.zip', 'wb') as handle: for data in tqdm(response.iter_content()): handle.write(data)
def get(url, params=None, **kwargs): r"""Sends a GET request. :param url: URL for the new :class:`Request` object. :param params: (optional) Dictionary, list of tuples or bytes to send in the body of the :class:`Request`. :param \*\*kwargs: Optional arguments that ``request`` takes. :return: :class:`Response <Response>` object :rtype: requests.Response """
Unzip a file after download
Here is how to unzip file after file download (in case of zip file):
import zipfile with zipfile.ZipFile('file.zip', 'r') as h: h.extractall('folder')
…tags: download - file & category: python