From 4d8b3e4f70cc80af52bc78dcfa5a31c4fdccd551 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Sat, 4 Jul 2020 22:00:34 +0200 Subject: [PATCH] defer directory creation (fixes #722) Only call os.makedirs() before a file is getting downloaded, and not immediately for every Directory message. --- gallery_dl/util.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/gallery_dl/util.py b/gallery_dl/util.py index c8d73b63..f688fa60 100644 --- a/gallery_dl/util.py +++ b/gallery_dl/util.py @@ -721,12 +721,10 @@ class PathFormat(): raise exception.DirectoryFormatError(exc) self.directory = self.realdirectory = "" - self.filename = "" - self.extension = "" - self.prefix = "" - self.kwdict = {} - self.delete = False + self.filename = self.extension = self.prefix = "" self.path = self.realpath = self.temppath = "" + self.kwdict = {} + self.delete = self._create_directory = False basedir = extractor._parentdir if not basedir: @@ -831,9 +829,7 @@ class PathFormat(): directory += sep self.realdirectory = directory - - # Create directory tree - os.makedirs(self.realdirectory, exist_ok=True) + self._create_directory = True def set_filename(self, kwdict): """Set general filename data""" @@ -872,6 +868,9 @@ class PathFormat(): def build_path(self): """Combine directory and filename to full paths""" + if self._create_directory: + os.makedirs(self.realdirectory, exist_ok=True) + self._create_directory = False self.filename = filename = self.build_filename() self.path = self.directory + filename self.realpath = self.realdirectory + filename