Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Muat Turun Fail dari Web dalam Python 3?

Bagaimana untuk Muat Turun Fail dari Web dalam Python 3?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-04 03:53:01796semak imbas

How to Download Files from the Web in Python 3?

Memuat Turun Fail dari Web dalam Python 3

Pengenalan

Apabila mencipta atur cara yang berinteraksi dengan Internet, sering kali perlu memuat turun fail daripada pelayan web. Dalam Python 3, terdapat pelbagai cara untuk menyelesaikan tugas ini.

Penyelesaian Python 3

Kod yang diberikan pada mulanya menghadapi ralat kerana fungsi menjangkakan jenis bait untuk argumen URL, tetapi yang diekstrak URL daripada fail JAD ialah rentetan. Untuk memuat turun fail apabila URL disimpan sebagai rentetan, tukarkannya kepada jenis bait menggunakan pengekodan UTF-8:

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

def downloadFile(URL=None):
    h = urllib.request.urlopen(URL.encode('utf-8'))
    return h.read()

downloadFile(URL_from_file)</code>

Penyelesaian Alternatif:

Terdapat beberapa kaedah alternatif untuk muat turun fail daripada web:

  • urllib.request.urlopen: Dapatkan kandungan halaman web dengan membaca respons urlopen:

    <code class="python">response = urllib.request.urlopen(URL)
    data = response.read() # a `bytes` object
    text = data.decode('utf-8') # a `str`</code>
  • urllib.request.urlretrieve: Muat turun dan simpan fail secara setempat:

    <code class="python">urllib.request.urlretrieve(URL, file_name)</code>
  • urllib.request. urlopen shutil.copyfileobj: Tawarkan pendekatan yang sangat disyorkan dan paling betul untuk memuat turun fail:

    <code class="python">with urllib.request.urlopen(URL) as response, open(file_name, 'wb') as out_file:
      shutil.copyfileobj(response, out_file)</code>
  • urllib.request.urlopen write to bytes object: Pilihan yang lebih ringkas, tetapi disyorkan hanya untuk fail kecil:

    <code class="python">with urllib.request.urlopen(URL) as response, open(file_name, 'wb') as out_file:
      data = response.read() # a `bytes` object
      out_file.write(data)</code>

Pengendalian Data Mampat

Akhir sekali, pengekstrakan data mampat secara on-the-fly juga mungkin:

<code class="python">url = 'http://example.com/something.gz'
with urllib.request.urlopen(url) as response:
    with gzip.GzipFile(fileobj=response) as uncompressed:
        file_header = uncompressed.read(64) # a `bytes` object</code>

Atas ialah kandungan terperinci Bagaimana untuk Muat Turun Fail dari Web 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