zoukankan      html  css  js  c++  java
  • python下载大文件

    1. wget

    def download_big_file_with_wget(url, target_file_name):
        """
            使用wget下载大文件
            Note: 需要系统安装wget
        """
        import os
        import subprocess
        
        download_process = subprocess.Popen(["wget", "-c", "-O", target_file_name, "'{}'".format(url)])
        
        download_process.wait()
        
        if not os.path.exists(target_file_name):
            raise Exception("fail to download file from {}".format(url))

    2. python核心库

    def download_big_file(url, target_file_name):
        """
            使用python核心库下载大文件
            ref: https://stackoverflow.com/questions/1517616/stream-large-binary-files-with-urllib2-to-file
        """
        import sys
        if sys.version_info > (2, 7):
            # Python 3
            from urllib.request import urlopen
        else:
            # Python 2
            from urllib2 import urlopen
        
        response = urlopen(url)
        chunk = 16 * 1024
        with open(target_file_name, 'wb') as f:
            while True:
                chunk = response.read(chunk)
                if not chunk:
                    break
                f.write(chunk)

    源码见blog.

  • 相关阅读:
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
    Evanyou Blog 彩带
  • 原文地址:https://www.cnblogs.com/rkfeng/p/8366327.html
Copyright © 2011-2022 走看看