Параллельные фьючерсы — извлечение имени файла вместе с выводом

У меня есть папка из 100 изображений, для которых я должен выполнить некоторую задачу по извлечению... чтобы сэкономить время, я хотел использовать concurrent.futures, и это сработало хорошо.. проблема в том, что я не могу сопоставить вывод на изображения в папку.. (я не знаю, какая добыча к какому файлу относится).. мой код выглядит примерно так:

def main():
    with concurrent.futures.ProcessPoolExecutor() as executor:
        y=([val for val in executor.map(extract_features_new, img_list)])
    return y    
       
if __name__ == '__main__':
    x=main()

есть ли у меня возможность добавить имя файла, когда он возвращает вывод??? Кто-нибудь может помочь?


person Moses Gunaseelan    schedule 10.08.2020    source источник
comment
executor.map должен возвращаться в том же порядке, что и аргументы, предоставленные img_list   -  person M Z    schedule 10.08.2020
comment
это правда? что, если одно изображение меньше и обрабатывается быстрее, чем предыдущее изображение в очереди... в этом случае порядок результатов будет изменен... верно??   -  person Moses Gunaseelan    schedule 10.08.2020
comment
Я почти уверен, но если вы не хотите рисковать, просто сделайте так, чтобы функция также возвращала имя файла как часть кортежа.   -  person M Z    schedule 10.08.2020
comment
Да, это должен быть легкий путь...   -  person Moses Gunaseelan    schedule 10.08.2020
comment
Этот ответ может вам помочь?   -  person Sun Bear    schedule 12.08.2020