executor.submit
возвращает Future
объект.Таким образом, вы должны получить результат из будущего объекта
files = ['20190702', '20190703', '20190708']
futures = {}
with concurrent.futures.ProcessPoolExecutor() as executor:
for filename in files:
vname = 'df_' + filename.split('2019')[1]
filename = filename + '.csv'
future = executor.submit(pd.read_csv, filename)
futures[vname] = future
for vname, f in futures.items():
dataframe = f.result()
# do something with vname and dataframe
Plus, никогда не используйте функцию exec
или eval
, кроме как для целей отладки / тестирования.Они делают ваш код небезопасным и трудным для отладки.