Comment télécharger un fichier à partir d'une URL stockée sous forme de chaîne dans Python 3 ?

Susan Sarandon
Libérer: 2024-11-04 06:48:01
original
172 Les gens l'ont consulté

How to Download a File from a URL Stored as a String in Python 3?

Comment télécharger un fichier depuis le Web dans Python 3 avec une URL stockée dans une chaîne

Lors d'une tentative de téléchargement d'un fichier à partir d'un serveur Web dans Python 3, le passage d'une chaîne comme URL peut entraîner une erreur exigeant la saisie d'octets. Cet article présente plusieurs méthodes pour contourner ce problème et réussir à récupérer le fichier.

Utiliser urllib.request.urlopen

Pour obtenir le contenu d'une page Web, utilisez urllib .request.urlopen(). Cette fonction renvoie un objet de réponse, qui peut ensuite être lu dans une variable :

<code class="python">import urllib.request

url = 'http://example.com/'
response = urllib.request.urlopen(url)
data = response.read()  # a `bytes` object</code>
Copier après la connexion

Utiliser urlib.request.urlretrieve

Le moyen le plus simple de télécharger et enregistrer un fichier consiste à utiliser la fonction urllib.request.urlretrieve :

<code class="python">import urllib.request

url = 'http://example.com/file.txt'
urllib.request.urlretrieve(url, 'file.txt')</code>
Copier après la connexion

Cette méthode télécharge le fichier à partir de l'URL spécifiée et l'enregistre localement sous 'file.txt'.

Utilisation de urlib.request.urlopen avecshutil.copyfileobj

Pour un meilleur contrôle sur le processus de téléchargement, utilisez urllib.request.urlopen() pour renvoyer un objet de type fichier. Cet objet peut ensuite être copié dans un fichier réel en utilisantshuil.copyfileobj() :

<code class="python">import urllib.request
import shutil

url = 'http://example.com/file.zip'
with urllib.request.urlopen(url) as response, open('file.zip', 'wb') as out_file:
    shutil.copyfileobj(response, out_file)</code>
Copier après la connexion

Stockage du téléchargement en octets

Si la vitesse est une priorité, le les données téléchargées peuvent être stockées directement dans un objet bytes et ensuite écrites dans un fichier, bien que cela ne convienne qu'aux petits fichiers :

<code class="python">import urllib.request

url = 'http://example.com/icon.png'
with urllib.request.urlopen(url) as response, open('icon.png', 'wb') as out_file:
    data = response.read() # a `bytes` object
    out_file.write(data)</code>
Copier après la connexion

Gestion des fichiers compressés

urllib.request.urlopen() peut également être utilisé pour gérer des fichiers compressés, à condition que le serveur prenne en charge l'accès aléatoire :

<code class="python">import urllib.request
import gzip

url = 'http://example.com/archive.gz'
with urllib.request.urlopen(url) as response:
    with gzip.GzipFile(fileobj=response) as uncompressed:
        file_header = uncompressed.read(64) # a `bytes` object</code>
Copier après la connexion

En implémentant l'une de ces méthodes, les développeurs peuvent réussir à télécharger des fichiers depuis le Web dans Python 3. , même lorsque l'URL est stockée sous forme de chaîne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!