Path Utilities (bpy.path)

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


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

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.


Creates a display string from name to be used menus and the user interface. Capitalize the first letter in all lowercase names, mixed case names are kept as is. Intended for use with filenames and module names.

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

Return the path with the extension added its its not alredy set.

  • ext (string) – The extension to check for.
  • 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.

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

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

  • path (string) – a directory to scan.
  • recursive (bool) – Also return submodule names for packages.

a list of string pairs (module_name, module_file).

Return type:


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

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

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

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

Previous topic

Utilities (bpy.utils)

Next topic

Application Data (