There is a common set of simple tasks that many build configurations rely on as they become more complex. Most build tools have special purpose constructs for performing these tasks, but since &SConscript; files are &Python; scripts, you can use more flexible built-in &Python; services to perform these tasks. This appendix lists a number of these tasks and how to implement them in &Python;. Wildcard globbing to create a list of filenames files = Glob(wildcard) Filename extension substitution import os.path filename = os.path.splitext(filename)[0]+extension Appending a path prefix to a list of filenames import os.path filenames = [os.path.join(prefix, x) for x in filenames] or in Python 1.5.2: import os.path new_filenames = [] for x in filenames: new_filenames.append(os.path.join(prefix, x)) Substituting a path prefix with another one if filename.find(old_prefix) == 0: filename = filename.replace(old_prefix, new_prefix) or in Python 1.5.2: import string if string.find(filename, old_prefix) == 0: filename = string.replace(filename, old_prefix, new_prefix) Filtering a filename list to exclude/retain only a specific set of extensions import os.path filenames = [x for x in filenames if os.path.splitext(x)[1] in extensions] or in Python 1.5.2: import os.path new_filenames = [] for x in filenames: if os.path.splitext(x)[1] in extensions: new_filenames.append(x) The "backtick function": run a shell command and capture the output import os output = os.popen(command).read()