Python脚本上传30万个文件Sqlite3还是海量列表?

2024-04-25 19:32:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个脚本,将上传文件到云帐户。将有包含文件的各种目录,但只有一个深度…目录中将有嵌套/目录。每个目录都是一个容器,文件将放在其中。有时文件可能多达300000个文件。我将使用多重处理。你知道吗

我想使用sqlite跟踪文件名、输出信息、返回代码,所以我有几个问题:

1)如果我只让sqlite3在内存中运行,而不是作为平面文件运行(因为我只需要信息,直到我完成脚本),它会膨胀内存吗? 2) 使用sqlite3与使用大量列表或列表字典进行跟踪相比,会对性能产生重大影响吗?你知道吗


Tags: 文件内存代码目录脚本信息列表sqlite
1条回答
网友
1楼 · 发布于 2024-04-25 19:32:18

如果不需要将结果保存在磁盘上,可以在主进程中使用字典结构。 然后可以使用.imap_unordered实时管理结果。你知道吗

在伪码中

files = [....] 
results = {}

r = pool.imap_unordered(uploadfile, files)
for res in r:
  results[res.fileid] = res.statuscode #for example

print_results_summary()

内存影响取决于存储在results字典中的信息。 对于存储结果状态代码的300000个条目来说,这并不算太多。你知道吗

在我的系统中,一个具有300.000int值的字典使python进程增长了大约20mb。你知道吗

相关问题 更多 >