Причина в том, что этот синтаксис: (x for x in [1, 2, 3])
создает объект генератора.
В отличие от этого: [x for x in [1, 2, 3]]
создает список.
Когда вы Напечатайте генератор напрямую, вы не увидите его содержимое. Вы можете сделать это вместо этого:
print([file for file in path.glob('*.*')])
или
print(list(file for file in path.glob('*.*')))
Оператор list
ничего не делает, но потребляет итерацию ( и генератор является итеративным) и возвращает результат в виде списка.