брайтстоун тселдор
У меня проект, где я даю пользователю возможность выбора, куда выводить данные
выводить данные=выводить структурированные данные, и тут нужен with open(…) as f: json.dump(f, obj). ну или в чём там данные
если же просто куда-то логировать происходящее, то правильней logging. Почему - потому что можно изи подключить несколько файлов/выключать определённые уровни логирования/менять формат вывода etc.