pathutils
-文件系统乐趣¶
用于处理文件系统路径的函数。
这个 expandpath()
函数将代字号扩展到$HOME,并将环境变量扩展到它们的值。
这个 augpath()
函数创建现有路径的变体,而不必花费多行代码将其拆分并重新缝合在一起。
这个 shrinkuser()
函数用代字号替换您的主目录。
- boltons.pathutils.augpath(path, suffix='', prefix='', ext=None, base=None, dpath=None, multidot=False)[源代码]¶
通过修改路径的组件来增加路径。
创建具有不同扩展名、基本名称、目录、前缀和/或后缀的新路径。
在基本名称之前插入前缀。在基本名称和扩展名之间插入后缀。基本名称和扩展名可以替换为新的名称和扩展名。从本质上讲,路径被分解为多个组件(dpath、base、ext),然后在替换任何指定的组件后重新组合为(dpath、prefix、base、Suffix、ext)。
- 参数:
path (str | PathLike) -- 一条增强的道路
suffix (str, default='') -- 放置在基本名称和扩展名之间
prefix (str, default='') -- 放在基本名称前面
ext (str, default=None) -- 如果指定,则替换扩展名
base (str, default=None) -- 如果指定,则替换不带扩展名的基本名称
dpath (str | PathLike, default=None) -- 如果指定,则替换目录
multidot (bool, default=False) -- 允许扩展名包含多个点。具体地说,如果为False,则基本名称中最后一个点之后的所有内容都是扩展名。如果为True,则基本名称中第一个点之后的所有内容都是扩展名。
- 返回:
扩展路径
- 返回类型:
示例
>>> path = 'foo.bar' >>> suffix = '_suff' >>> prefix = 'pref_' >>> ext = '.baz' >>> newpath = augpath(path, suffix, prefix, ext=ext, base='bar') >>> print('newpath = %s' % (newpath,)) newpath = pref_bar_suff.baz
示例
>>> augpath('foo.bar') 'foo.bar' >>> augpath('foo.bar', ext='.BAZ') 'foo.BAZ' >>> augpath('foo.bar', suffix='_') 'foo_.bar' >>> augpath('foo.bar', prefix='_') '_foo.bar' >>> augpath('foo.bar', base='baz') 'baz.bar' >>> augpath('foo.tar.gz', ext='.zip', multidot=True) 'foo.zip' >>> augpath('foo.tar.gz', ext='.zip', multidot=False) 'foo.tar.zip' >>> augpath('foo.tar.gz', suffix='_new', multidot=True) 'foo_new.tar.gz'
- boltons.pathutils.expandpath(path)[源代码]¶
类似Shell的环境变量和代字号主目录的展开。
示例
>>> import os >>> os.environ['SPAM'] = 'eggs' >>> assert expandpath('~/$SPAM') == expanduser('~/eggs') >>> assert expandpath('foo') == 'foo'
- boltons.pathutils.shrinkuser(path, home='~')[源代码]¶
与之相反
os.path.expanduser()
。- 参数:
- 返回:
路径:用代字号替换主目录的缩短路径
- 返回类型:
示例
>>> path = expanduser('~') >>> assert path != '~' >>> assert shrinkuser(path) == '~' >>> assert shrinkuser(path + '1') == path + '1' >>> assert shrinkuser(path + '/1') == join('~', '1') >>> assert shrinkuser(path + '/1', '$HOME') == join('$HOME', '1')