您如何处理OSError:[Errno 24]打开的文件太多?

时间:2020-07-23 04:07:54

标签: python python-3.x linux filehandle

尝试使用以下HTTP请求下载数据。该请求将被顺序执行数千次。

with urllib.request.urlopen(url, timeout=120) as resp:
    with open(save_loc + '.part', 'wb') as fh:
        while True:
            chunk = resp.read(1024 * 1024)
            if not chunk:
                break
            fh.write(chunk)

此呼叫由:

if __name__ == '__main__':
x = [str(x) for x in range(1,100)]
with Pool(initializer=init_worker, processes=1) as pool:
    result = pool.map(downloadData,x, chunksize=1)
    pool.close()
    pool.join()

将来会扩大下载功能,这就是为什么我将代码用于多处理的原因。

我遇到的此类错误的解决方法是使用以下方法增加打开文件的限制

ulimit -n [limit]

或者使用“ with”语句打开文件。

当我使用自动关闭文件处理程序的“ with”语句时,我试图理解为什么有文件实例打开(错误提示)。

0 个答案:

没有答案