The Transport API in bzrlib provides URL based access to network resources. >>> import os >>> import sys >>> from bzrlib.osutils import getcwd, dirname >>> from bzrlib.urlutils import local_path_from_url >>> import bzrlib.transport as transport >>> if sys.platform == 'win32': ... root = transport.get_transport('file:///C:/') ... else: ... root = transport.get_transport('file:///') >>> Each Transport instance represents a single logical directory. >>> dir = transport.get_transport(".") >>> local_path_from_url(dir.base) == getcwd() + '/' True You can change directories via the clone method: >>> parent = dir.clone('..') >>> local_path_from_url(parent.base) == (dirname(getcwd()).rstrip('/') + '/') True