Есть несколько способов сделать это. Вам просто нужна временная функция, которая знает, как расширить единственный параметр, используемый map
, в нужный вам вызов. В первом примере у вас может быть несколько консервированных типов. Это приятно, потому что легко увидеть параметры, которые вам нравятся для каждого типа
def csv_reader(params):
filename, csv_type = *params
if csv_type == 'footype':
return pd.read_csv(filename, sep="|")
elif csv_type == 'bartype':
return pd.read_csv(filename, columns=["A", "B", "C"])
files = [('csv_1.csv', 'footype'), ('csv_2.csv', 'bartype')]
with ThreadPoolExecutor(2) as executor:
results = executor.map(csv_reader, files)
Но вы всегда можете сделать его общим c
def csv_reader_generic(params):
filename, args, kw = *params
return pd.read_csv(filename, *args, **kwargs)
files = [('csv_1.csv', tuple(), {"sep":"|"}),
('csv_2.csv', tuple(), {"columns":["A", "B", "C"]})]
with ThreadPoolExecutor(2) as executor:
results = executor.map(csv_reader_generic, files)