多线程下载三种方法

def download(img_url, img_name):

    with closing(requests.get(img_url, stream=True)) as r:

        with open(os.path.join(out_dir, img_name), 'wb') as f:

            fordatainr.iter_content(1024):

                f.write(data)


def get_imgurl_generate():

    with open('./example.txt','r') as f:

        forlinein f:

            line = line.strip()

            yield imgs


lock = threading.Lock()def loop(imgs):

    while True:

        try:

            with lock:

                img_url, img_name = next(imgs)

        except StopIteration:

            break        download_pic(img_url, img_name)

img_gen = imgurl_generate()foriin range(0, thread_num):

    t = threading.Thread(target=loop, args=(img_gen,))

    t.start()

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 3,277评论 0 9
  • 线程 操作系统线程理论 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有...
    go以恒阅读 1,822评论 0 6
  • 先创建服务端的APP 1.官网下载Winrun4j。http://winrun4j.sourceforge.net...
    Alex_1799阅读 2,126评论 1 2
  • ### GIL global interpreter lock(cpython) 同一时刻只有一个线程运行在一个c...
    派派森森阅读 284评论 0 1
  • 今晚练了🧘‍♀️,身体感觉舒服。我很感谢,现在的自己,虽然到晚上还是会觉得孤单寂寞冷。可是我也慢慢学会一个...
    穿xs的阳子小姐阅读 253评论 1 0

友情链接更多精彩内容