Path Utilities (bpy.path)

This module has a similar scope to os.path, containing utility functions for dealing with paths in Blender.

bpy.path.abspath(path, *, start=None, library=None)

Returns the absolute path relative to the current blend file using the “//” prefix.

Parameters
  • start (string or bytes) – Relative to this path, when not set the current filename is used.

  • library (bpy.types.Library) – The library this path is from. This is only included for convenience, when the library is not None its path replaces start.

bpy.path.basename(path)

Equivalent to os.path.basename, but skips a “//” prefix.

Use for Windows compatibility.

bpy.path.clean_name(name, *, replace='_')

Returns a name with characters replaced that may cause problems under various circumstances, such as writing to a file. All characters besides A-Z/a-z, 0-9 are replaced with “_” or the replace argument if defined.

bpy.path.display_name(name, *, has_ext=True, title_case=True)

Creates a display string from name to be used menus and the user interface. Intended for use with filenames and module names.

Parameters
  • has_ext – Remove file extension from name

  • title_case – Convert lowercase names to title case

bpy.path.display_name_to_filepath(name)

Performs the reverse of display_name using literal versions of characters which aren’t supported in a filepath.

bpy.path.display_name_from_filepath(name)

Returns the path stripped of directory and extension, ensured to be utf8 compatible.

bpy.path.ensure_ext(filepath, ext, *, case_sensitive=False)

Return the path with the extension added if it is not already set.

Parameters
  • ext (string) – The extension to check for, can be a compound extension. Should start with a dot, such as ‘.blend’ or ‘.tar.gz’.

  • case_sensitive (bool) – Check for matching case when comparing extensions.

bpy.path.is_subdir(path, directory)

Returns true if path in a subdirectory of directory. Both paths must be absolute.

Parameters

path (string or bytes) – An absolute path.

bpy.path.module_names(path, *, recursive=False)

Return a list of modules which can be imported from path.

Parameters
  • path (string) – a directory to scan.

  • recursive (bool) – Also return submodule names for packages.

Returns

a list of string pairs (module_name, module_file).

Return type

list

bpy.path.native_pathsep(path)

Replace the path separator with the systems native os.sep.

bpy.path.reduce_dirs(dirs)

Given a sequence of directories, remove duplicates and any directories nested in one of the other paths. (Useful for recursive path searching).

Parameters

dirs (sequence) – Sequence of directory paths.

Returns

A unique list of paths.

Return type

list

bpy.path.relpath(path, *, start=None)

Returns the path relative to the current blend file using the “//” prefix.

Parameters
  • path (string or bytes) – An absolute path.

  • start (string or bytes) – Relative to this path, when not set the current filename is used.

bpy.path.resolve_ncase(path)

Resolve a case insensitive path on a case sensitive system, returning a string with the path if found else return the original path.