cfdm.dirname¶
-
cfdm.
dirname
(path, normalise=False, uri=None, isdir=False, sep=False)[source]¶ Return the directory of a path.
New in version (cfdm): 1.12.0.0
- Parameters
- path:
str
The name of the path.
- normalise:
bool
, optional If True then normalise the path by resolving it to an absolute path. If False (the default) then no normalisation is done.
- uri:
None
orbool
, optional If True then the returned directory will begin with a URI scheme component followed by a
:
character, such asfile://data/file.nc
,https://remote/data/file.nc
, etc.). If False then the returned directory will not begin with a URI scheme component. IfNone
(the default) then the returned directory will begin with a URI scheme component if the input path does.- isdir:
bool
, optional Set to True if path represents a directory, rather than a file.
- sep:
bool
, optional Set to True to add a trailing path separator to the returned directory.
- path:
- Returns
str
The directory of the path.
Examples
>>> import os >>> os.getcwd() '/data/archive'
>>> cfdm.dirname('file.nc') '/data/archive' >>> cfdm.dirname('file.nc', normalise=True) '/data/archive' >>> cfdm.dirname('file.nc', normalise=True, uri=True) 'file:///data/archive' >>> cfdm.dirname('file.nc', normalise=True, uri=False) '/data/archive' >>> cfdm.dirname('file.nc', normalise=True, sep=True) '/data/archive/'
>>> cfdm.dirname('model/file.nc') 'model' >>> cfdm.dirname('model/file.nc', normalise=True) /data/archive/model' >>> cfdm.dirname('model/file.nc', normalise=True, uri=True) 'file:///data/archive/model' >>> cfdm.dirname('model/file.nc', normalise=True, uri=False) /data/archive/model'
>>> cfdm.dirname('../file.nc') '..' >>> cfdm.dirname('../file.nc', normalise=True) '/data' >>> cfdm.dirname('../file.nc', normalise=True, uri=True) 'file:///data' >>> cfdm.dirname('../file.nc', normalise=True, uri=False) '/data'
>>> cfdm.dirname('/model/file.nc') '/model' >>> cfdm.dirname('/model/file.nc', normalise=True) '/model' >>> cfdm.dirname('/model/file.nc', normalise=True, uri=True) 'file:///model' >>> cfdm.dirname('/model/file.nc', normalise=True, uri=False) '/model'
>>> cfdm.dirname('') '' >>> cfdm.dirname('', normalise=True) '/data/archive' >>> cfdm.dirname('', normalise=True, uri=True) 'file:///data/archive' >>> cfdm.dirname('', normalise=True, uri=False) '/data/archive'
>>> cfdm.dirname('https:///data/archive/file.nc') 'https:///data/archive' >>> cfdm.dirname('https:///data/archive/file.nc', normalise=True) 'https:///data/archive' >>> cfdm.dirname('https:///data/archive/file.nc', normalise=True, uri=True) 'https:///data/archive' >>> cfdm.dirname('https:///data/archive/file.nc', normalise=True, uri=False) ValueError: Can't set uri=False for path='https:///data/archive/file.nc'
>>> cfdm.dirname('file:///data/archive/file.nc') 'file:///data/archive' >>> cfdm.dirname('file:///data/archive/file.nc', normalise=True) 'file:///data/archive' >>> cfdm.dirname('file:///data/archive/file.nc', normalise=True, uri=True) 'file:///data/archive' >>> cfdm.dirname('file:///data/archive/file.nc', normalise=True, uri=False) '/data/archive'
>>> cfdm.dirname('file:///data/archive/../file.nc') 'file:///data/archive/..' >>> cfdm.dirname('file:///data/archive/../file.nc', normalise=True) 'file::///data' >>> cfdm.dirname('file:///data/archive/../file.nc', normalise=True, uri=True) 'file::///data' >>> cfdm.dirname('file:///data/archive/../file.nc', normalise=True, uri=False) '/data'