【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如何通过下载多个文件”的全部内容了,希望对你有所帮助 。
推荐阅读
- Python中six库有什么作用?Python该怎么去使用six第三方库
- Python如何定义结构体?Python结构体该怎么表示
- 欣兰冻膜怎么样
- Python代码能做成软件吗?怎么把Python代码做成一个软件?
- 盒装起泡胶怎么玩
- 如何通过pycharm查看Python安装了哪些模块?Pycharm查看Python中已安装模块的方法
- 怎么在Python中使用datime包计算时间差?使用datime包计算时间差的方法
- 自由光定速巡航怎么用
- dds海洋面膜怎么样
- 索尼tx100怎么样 有那些缺点 值得买吗