Python怎么一次性下载多个文件?Python如何同时下载多个文件

【Python怎么一次性下载多个文件?Python如何同时下载多个文件】在之前的一些文章之中小编已经给大家讲解过了python下载文件的方法,但是那些方法一次只能下载单个文件并且还需要手动操作 。所以在这篇文章内会给大家分享一个,一次性下载多个文件的python脚本,感兴趣的话就继续往下看看吧 。

Python怎么一次性下载多个文件?Python如何同时下载多个文件

文章插图
1.这个脚本需要aiohttp、asyncio以及time这个三个模块,第一个模块是用来连接url链接并且下载文件的 。而第二个模块则是异步操作模块,它的作用就是在一个进程中通过异步来将下载文件的操作进行切换,示例如下:
import aiohttpimport asyncioimport time2.导入模块之后需要定义一个函数并且使用async这个异步操作关键词来标识,函数内接收的两个参数就是session以及url下载链接,代码如下所示:
async def ibo(session,url):3.在上面这个函数之中需要使用split()方法将url链接字符串从最后面开始按照反斜杠阶段得到文件名称,然后将文件名称以await关键词异步标记起来,这样就可以在执行异步操作切换下载连接时获得数据了 。调用open()函数将它们都写入文件中,详细代码如下所示:
name = url.split(’/’)[-1]img = await session.get(url)imgcode = await img.read()with open(’new/’+str(name),’wb’) as f:  f.write(imgcode)return str(url)4.那么第四步就是要去建立session会话并且将以下载链接来建立任务完成一次性下载多个文件,详细代码示例如下所示:
async def main(loop,url):  async with aiohttp.ClientSession() as session:    tasks = [loop.create_task(job(session,url[_])) for _ in range(5)]    finished, unfinished = await asyncio.wait(tasks)    all_results = [r.result() for r in finished]5.最后只需要调用这两个方法并且传入合适的参数即可,详细代码示例如下所示:
url=[’ https://’,’ https://’,’ https://’,’ https://’,’ https://’]loop = asyncio.get_event_loop()loop.run_until_complete(main(loop,url))loop.close()以上就是关于“Python怎么一次性下载多个文件?Python如何通过下载多个文件”的全部内容了,希望对你有所帮助 。

    推荐阅读