Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Muat Turun Fail dari URL yang Disimpan sebagai String dalam Python 3?

Bagaimana untuk Muat Turun Fail dari URL yang Disimpan sebagai String dalam Python 3?

Susan Sarandon
Susan Sarandonasal
2024-11-04 06:48:01241semak imbas

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

Cara Muat Turun Fail daripada Web dalam Python 3 dengan URL Disimpan dalam Rentetan

Apabila cuba memuat turun fail daripada pelayan web dalam Python 3, menghantar rentetan kerana URL boleh mengakibatkan ralat yang memerlukan input bait. Artikel ini membentangkan beberapa kaedah untuk memintas isu ini dan berjaya mendapatkan semula fail.

Menggunakan urllib.request.urlopen

Untuk mendapatkan kandungan halaman web, gunakan urllib .request.urlopen(). Fungsi ini mengembalikan objek tindak balas, yang kemudiannya boleh dibaca menjadi pembolehubah:

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

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

Menggunakan urlib.request.urlretrieve

Cara paling mudah untuk memuat turun dan menyimpan fail adalah untuk menggunakan fungsi urllib.request.urlretrieve:

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

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

Kaedah ini memuat turun fail daripada URL yang ditentukan dan menyimpannya secara setempat sebagai 'file.txt'.

Menggunakan urlib.request.urlopen dengan shutil.copyfileobj

Untuk kawalan yang lebih besar ke atas proses muat turun, gunakan urllib.request.urlopen() untuk mengembalikan objek seperti fail. Objek ini kemudiannya boleh disalin ke fail sebenar menggunakan shutil.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>

Menyimpan Muat Turun sebagai Bait

Jika kelajuan adalah keutamaan, data yang dimuat turun boleh disimpan terus ke dalam objek bait dan seterusnya ditulis pada fail, walaupun ini hanya sesuai untuk fail kecil:

<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>

Mengendalikan Fail Mampat

urllib.request.urlopen() juga boleh digunakan untuk mengendalikan fail termampat, dengan syarat pelayan menyokong akses rawak:

<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>

Dengan melaksanakan salah satu kaedah ini, pembangun boleh berjaya memuat turun fail daripada web dalam Python 3 , walaupun apabila URL disimpan sebagai rentetan.

Atas ialah kandungan terperinci Bagaimana untuk Muat Turun Fail dari URL yang Disimpan sebagai String dalam Python 3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn