青青草免费线看线看|啊在车上停不下来了|国产少女免费观看电视剧|仑乱88MAV|精品老司机在线观看视频|国产一区二区三区高清免费视频|在线观看免费777av

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如何通過下載多個文件”的全部內容了,希望對你有所幫助 。

    猜你喜歡