使用asyncio模組處理檔案報錯

2022-08-21 14:15:15 字數 795 閱讀 3945

錯誤:valueerror: too many file descriptors in select()

解決方案:

加併發限制semaphore = asyncio.semaphore(200),但是只能針對爬蟲調介面

semaphore = asyncio.semaphore(100)

出現這個問題是因為千級檔案操作,使用proactoreventloop,適用於windows io操作過多的情況,問題解決

from asyncio import proactoreventloop

asyncio.set_event_loop(proactoreventloop())

loop = asyncio.get_event_loop()

# 原始碼

if sys.platform == 'win32':

proactoreventloop: type[abstracteventloop]

python3 非同步模組asyncio

yield方法引入,這裡存在的問題是,如果你想建立從0到1,000,000這樣乙個很大的序列,你不得不建立能容納1,000,000個整數的列表。但是當加入了生成器之後,你可以不用建立完整的序列,你只需要能夠每次儲存乙個整數的記憶體即可。import asyncio asyncio.coroutine...

asyncio模組中的Future和Task

task是可以理解為單個coroutine,經過ensure future方法處理而形成,而眾多task所組成的集合經過asyncio.gather處理而形成乙個future。再不精確的粗略的說,future就是存放著眾多task或future的容器。而task又是future的子類,所以不管是ta...

cinrad 雷達檔案處理模組

cinrad模組用於處理雷達檔案,安裝可參考 pycinrad 模組安裝說明 這裡簡單介紹下常用操作 from cinrad.io import cinradreader 載入檔案 f cinradreader 檔案位置 根據所想要獲取的雷達dbz的仰角和覆蓋範圍得到資料物件,模式一般都是ref r...