makefilepath#
- makefilepath(filename=None, folder=None, ext=None, default=None, split=False, aspath=None, abspath=True, makedirs=False, checkexists=None, sanitize=False, die=True, verbose=False)[source]#
Utility for taking a filename and folder – or not – and generating a valid path from them. By default, this function will combine a filename and folder using os.path.join, create the folder(s) if needed with os.makedirs, and return the absolute path.
Note: in most cases
sc.makepath()
should be used instead.- Parameters:
filename (str or Path) – the filename, or full file path, to save to – in which case this utility does nothing
folder (str/Path/list) – the name of the folder to be prepended to the filename; if a list, fed to
os.path.join()
ext (str) – the extension to ensure the file has
default (str or list) – a name or list of names to use if filename is None
split (bool) – whether to return the path and filename separately
aspath (bool) – whether to return a Path object (default: set by
sc.options.aspath
)abspath (bool) – whether to conver to absolute path
makedirs (bool) – whether or not to make the folders to save into if they don’t exist
checkexists (bool) – if False/True, raises an exception if the path does/doesn’t exist
sanitize (bool) – whether or not to remove special characters from the path; see
sc.sanitizepath()
for detailsdie (bool) – whether or not to raise an exception if cannot create directory failed (otherwise, return a string)
verbose (bool) – how much detail to print
- Returns:
the validated path (or the folder and filename if split=True)
- Return type:
filepath (str or Path)
Simple example:
filepath = sc.makefilepath('myfile.obj') # Equivalent to os.path.abspath(os.path.expanduser('myfile.obj'))
Complex example:
filepath = makefilepath(filename=None, folder='./congee', ext='prj', default=[project.filename, project.name], split=True, abspath=True, makedirs=True)
Assuming project.filename is None and project.name is “recipe” and ./congee doesn’t exist, this will makes folder ./congee and returns e.g. (‘/home/myname/congee’, ‘recipe.prj’)
New in version 1.1.0: “aspath” argumentNew in version 3.0.0: “makedirs” defaults to False