cfdm.dirname¶
- cfdm.dirname(path, normalise=False, uri=None, isdir=False, sep=False)[source]¶
Return the directory of a path.
Added 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") '' >>> 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'