Bagaimana untuk Muat Turun Fail dari Web dalam Python 3?

Mary-Kate Olsen
Lepaskan: 2024-11-04 03:53:01
asal
794 orang telah melayarinya

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>
Salin selepas log masuk

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>
    Salin selepas log masuk
  • urllib.request.urlretrieve: Muat turun dan simpan fail secara setempat:

    <code class="python">urllib.request.urlretrieve(URL, file_name)</code>
    Salin selepas log masuk
  • 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>
    Salin selepas log masuk
  • 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>
    Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!