Python csv多处理加载到字典或列表

Python csv多处理加载到字典或列表,python,list,csv,dictionary,multiprocessing,Python,List,Csv,Dictionary,Multiprocessing,我正在从MATLAB转到python,我的算法一直停留在并行处理上 我需要处理大量的csv(1到1M),其中包含大量的行(10k到10M),有5个独立的数据列 我已经有了这样的代码,但只有一个处理器,将csv加载到RAM中的字典大约需要30分钟(~1k csv,共~100k行) 文件名位于从csv加载的列表中(已完成此操作): 以及以下形式的CSV:(示例:FlexOut_20140815_013804.CSV) 我正在寻找类似MATLAB'parfor'的东西,它从列表中获取名称,打开文件并将

我正在从MATLAB转到python,我的算法一直停留在并行处理上

我需要处理大量的csv(1到1M),其中包含大量的行(10k到10M),有5个独立的数据列

我已经有了这样的代码,但只有一个处理器,将csv加载到RAM中的字典大约需要30分钟(~1k csv,共~100k行)

文件名位于从csv加载的列表中(已完成此操作):

以及以下形式的CSV:(示例:FlexOut_20140815_013804.CSV)

我正在寻找类似MATLAB'parfor'的东西,它从列表中获取名称,打开文件并将数据放入字典列表中。 这是一个列表,因为文件中有一个顺序(PW),但在我发现的示例中,这样做似乎更复杂,所以首先我将尝试将其放在一个口述中,然后将数据排列在一个列表中

现在我从web上的多处理示例开始:
当我有一段“工作”代码时,我会发布更新。

只是大声思考。。。如果您有100k行的1k文件,则为100M行。如果每行平均50个字符,这意味着在开始对任何数据结构进行索引和管理之前,大约有5GB的数据。我希望你的机器有足够的内存。您能否加载一次字典,并将其加载到作为服务器运行的单独任务中,而您的其他操作只需连接到服务器(使用套接字或类似工具)即可访问数据,而无需重复加载?Hi Mark,是的,ram不是问题,我有24GB的ram和100GB的交换内存,使用matlab,我习惯于处理大量数据(50Gb或更多)。问题是我是python新手,但是matlab pro,所以我的matlab代码很复杂,经过优化,可以充分利用我的计算机;否则,您将自己重新实现它的许多功能。可能的重复:完成!!,现在我很忙,但当我有时间时,我会发布代码以供评论
Amp Freq    Offset  PW  FileName
3   10000.0 1.5 1e-08   FlexOut_20140814_221948.csv
3   10000.0 1.5 1.1e-08 FlexOut_20140814_222000.csv
3   10000.0 1.5 1.2e-08 FlexOut_20140814_222012.csv
...
# TDC characterization output file , compress
# TDC time : Fri Aug 15 01:38:04 2014
#- Event index number
#- Channel from 0 to 15
#- Pulse width [ps] (1 ns precision)
#- Time stamp rising edge [ps] (500 ps precision)
#- Time stamp falling edge [ps] (500 ps precision)
##Event Channel Pwidth  TSrise  TSfall
0   6   1003500 42955273671237500   42955273672241000
1   6   1003500 42955273771239000   42955273772242500
2   6   1003500 42955273871241000   42955273872244500
...