Я пытаюсь написать функцию, которая принимает другую функцию в качестве необязательного аргумента. Я немного застрял (и запутался) с синтаксисом. Я хочу, чтобы func2 был необязательным аргументом. Поэтому я хочу, чтобы он работал, только когда я вызываю его в func1. Я хочу, чтобы он работал в качестве функции фильтра для более сложных шаблонов файлов. glob.glob(files + '/*')
может дать все файлы в указанных каталогах. (glob.glob(path + '/' + file_name + '*'))
может дать более сложные шаблоны, я просто не уверен, как реализовать это в качестве необязательного аргумента функции. Любая помощь приветствуется!
import glob
def func1(dirs, func2):
if type(dirs) == list:
for files in dirs:
files = glob.glob(files + '/*')
print(files) # prints all of the file names in each directory given
if func2:
func2(file_name)
def func2(file_name):
if file_name in files:
print(file_name)
# (glob.glob(path + '/' + file_name + '*'))
func1(['C:\path\to\files1\', 'C:\path\to\files2\'], func2('test2'))
Для этого примера предположим, что \ files1 содержит 'test1.txt' и 'test2.txt', а files2 содержит 'test1.jpg' и 'test2.jpg'. Я хочу func1
напечатать путь для test2.txt и test1.jpg.