Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Muat Turun Fail dari URL yang Disimpan sebagai String dalam 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!