Module Sys
[frames] | no frames]

Module Sys

The Blender.sys submodule.

sys

New: expandpath.

This module provides a minimal set of helper functions and data. Its purpose is to avoid the need for the standard Python module 'os', in special 'os.path', though it is only meant for the simplest cases.

Example:

 import Blender

 filename = ""
 def f(name): # file selector callback
   global filename
   filename = name

 Blender.Window.FileSelector(f)

 if filename:
   print 'basename:', Blender.sys.basename(filename)
   print 'dirname:',  Blender.sys.dirname(filename)
   print 'splitext:', Blender.sys.splitext(filename)

 # what would basename(splitext(filename)[0]) print?

Attention: The module is called sys, not Sys.

Functions
string
basename(path)
Get the base name (filename stripped from dir info) of 'path'.
string
dirname(path)
Get the dir name (dir path stripped from filename) of 'path'.
string
join(dir, file)
Join the given dir and file paths, using the proper separator for each platform.
tuple of two strings
splitext(path)
Split 'path' into (root, ext), where 'ext' is a file extension including the full stop.
string
makename(path='Blender.Get(\'filename\')', ext='', strip=0)
Remove extension from 'path', append extension 'ext' (if given) to the result and return it.
int
exists(path)
Tell if the given pathname (file or dir) exists.
float
time()
Get the current time in seconds since a fixed value.
 
sleep(millisecs=10)
Sleep for the specified amount of time.
string
expandpath(path)
Expand the given Blender 'path' into an absolute and valid path.
string
cleanpath(path)
Clean the given 'path' by removing unneeded components such as "/./" and "/test/../"
string
relpath(path, start='//')
Returns the path relative to the start,
Variables
  __package__ = None
char dirsep
same as sep.
string progname
the Blender executable (argv[0]).
char sep
the platform-specific dir separator for this Blender: '/' everywhere, except on Win systems, that use '\'.
Function Details

basename(path)

 

Get the base name (filename stripped from dir info) of 'path'.

Parameters:
  • path (string) - a path name
Returns: string
the base name

dirname(path)

 

Get the dir name (dir path stripped from filename) of 'path'.

Parameters:
  • path (string) - a path name
Returns: string
the dir name

join(dir, file)

 

Join the given dir and file paths, using the proper separator for each platform.

Parameters:
  • dir (string) - the dir name, like returned from dirname.
  • file (string) - the bare filename, like returned from basename.
Returns: string
the resulting filename.

Warning: this simple function isn't intended to be a complete replacement for the standard os.path.join() one, which handles more general cases.

splitext(path)

 

Split 'path' into (root, ext), where 'ext' is a file extension including the full stop.

Example:

 import Blender
 file, ext= Blender.sys.splitext('/tmp/foobar.blend')
 print file, ext
 # ('/tmp/foobar', '.blend')
Parameters:
  • path (string) - a path name
Returns: tuple of two strings
(root, ext)

Note: This function will raise an error if the path is longer then 80 characters.

makename(path='Blender.Get(\'filename\')', ext='', strip=0)

 

Remove extension from 'path', append extension 'ext' (if given) to the result and return it. If 'strip' is non-zero, also remove dirname from path.

Example:

 import Blender
 from Blender.sys import *
 print makename('/path/to/myfile.txt','.abc', 1) # returns 'myfile.abc'

 print makename('/path/to/myfile.obj', '-01.obj') # '/path/to/myfile-01.obj'

 print makename('/path/to/myfile.txt', strip = 1) # 'myfile'

 # note that:
 print makename(ext = '.txt')
 # is equivalent to:
 print sys.splitext(Blender.Get('filename'))[0]) + '.txt'
Parameters:
  • path (string) - a path name or Blender.Get('filename'), if not given.
  • ext (string) - an extension to append. For flexibility, a dot ('.') is not automatically included.
Returns: string
the resulting string

exists(path)

 

Tell if the given pathname (file or dir) exists.

Returns: int
  • 0: path does not exist;
  • 1: path is an existing filename;
  • 2: path is an existing dirname;
  • -1: path exists but is neither a regular file nor a dir.

time()

 

Get the current time in seconds since a fixed value. Successive calls to this function are guaranteed to return values greater than the previous call.

Returns: float
the elapsed time in seconds.

sleep(millisecs=10)

 

Sleep for the specified amount of time.

Parameters:
  • millisecs (int) - the amount of time in milliseconds to sleep. The default is 10 which is 0.1 seconds.

expandpath(path)

 

Expand the given Blender 'path' into an absolute and valid path. Internally, Blender recognizes two special character sequences in paths:

  • '//' (used at the beginning): means base path -- the current .blend file's dir;
  • '#' characters in the filename will be replaced by the frame number.

The expanded string can be passed to generic python functions that don't understand Blender's internal relative paths.

Parameters:
  • path (string) - a path name.
Returns: string
the expanded (if necessary) path.
Notes:
  • this function is also useful for obtaining the name of the image that will be saved when rendered.
  • if the passed string doesn't contain the special characters it is returned unchanged.

cleanpath(path)

 

Clean the given 'path' by removing unneeded components such as "/./" and "/test/../"

Parameters:
  • path (string) - a path name.
Returns: string
the cleaned (if necessary) path.

relpath(path, start='//')

 

Returns the path relative to the start,

Parameters:
  • path (string) - a path name.
  • start (string) - optional argument for the base path, the current blend files base path is used omitted
Returns: string
The path relative to start

Note: If the path can be made relative it well start with "//", this is spesific to blender and should be converted to "./" for use as a system path.