最近我已经学习了很多有关python生成器的知识,并且我对它们的内存使用情况有疑问。
有两种方法可以做同一件事:
首先使用生成器
import pandas as pd
from glob import glob
csvlist = glob("/path/to/my/data/*.csv")
df_gen = (pd.read_csv(file) for file in csvlist)
for df in df_gen:
# do your processing here
process_data(df)
现在没有
import pandas as pd
from glob import glob
csvlist = glob("/path/to/my/data/*.csv")
for csv in csvlist:
df = pd.read_csv(csv)
# do your processing here
process_data(df)
我知道生成器方式会将每个数据帧一次加载到内存中。但是,这是否比第二种方式(仅从循环内的每个CSV读取数据)提高了内存效率?