„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie lade ich eine Datei von einer URL herunter, die in Python 3 als String gespeichert ist?

Wie lade ich eine Datei von einer URL herunter, die in Python 3 als String gespeichert ist?

Veröffentlicht am 20.11.2024
Durchsuche:428

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

So laden Sie eine Datei aus dem Web in Python 3 mit einer in einem String gespeicherten URL herunter

Beim Versuch, eine Datei von einem herunterzuladen Auf einem Webserver in Python 3 kann die Übergabe einer Zeichenfolge als URL zu einem Fehler führen, der die Eingabe von Bytes erfordert. In diesem Artikel werden mehrere Methoden vorgestellt, um dieses Problem zu umgehen und die Datei erfolgreich abzurufen.

Verwenden von urllib.request.urlopen

Um den Inhalt einer Webseite abzurufen, verwenden Sie urllib .request.urlopen(). Diese Funktion gibt ein Antwortobjekt zurück, das dann in eine Variable eingelesen werden kann:

import urllib.request

url = 'http://example.com/'
response = urllib.request.urlopen(url)
data = response.read()  # a `bytes` object

Verwenden von urlib.request.urlretrieve

Der einfachste Weg, eine Datei herunterzuladen und zu speichern, ist die Verwendung von die Funktion urllib.request.urlretrieve:

import urllib.request

url = 'http://example.com/file.txt'
urllib.request.urlretrieve(url, 'file.txt')

Diese Methode lädt die Datei von der angegebenen URL herunter und speichert sie lokal als 'file.txt'.

Verwendet urlib.request.urlopen mit Shutil.copyfileobj

Für eine bessere Kontrolle über den Download Verwenden Sie im Prozess urllib.request.urlopen(), um ein dateiähnliches Objekt zurückzugeben. Dieses Objekt kann dann mit „shutil.copyfileobj():

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)

Speichern des Downloads als Bytes

Wenn Geschwindigkeit Priorität hat, können die heruntergeladenen Daten direkt in einem Bytes-Objekt und anschließend gespeichert werden in eine Datei geschrieben, obwohl dies nur für kleine Dateien geeignet ist:

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)

Verarbeitung komprimierter Dateien

urllib.request.urlopen() kann auch zur Verarbeitung komprimierter Dateien verwendet werden, sofern der Server Direktzugriff unterstützt:

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

Durch die Implementierung einer dieser Methoden können Entwickler in Python 3 erfolgreich Dateien aus dem Web herunterladen, selbst wenn die URL als String gespeichert ist.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3