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,则基本名称中第一个点之后的所有内容都是扩展名。

返回:

扩展路径

返回类型:

str

示例

>>> 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的环境变量和代字号主目录的展开。

参数:

path (str | PathLike) -- 扩张之路

返回:

扩展路径

返回类型:

str

示例

>>> import os
>>> os.environ['SPAM'] = 'eggs'
>>> assert expandpath('~/$SPAM') == expanduser('~/eggs')
>>> assert expandpath('foo') == 'foo'
boltons.pathutils.shrinkuser(path, home='~')[源代码]

与之相反 os.path.expanduser()

参数:
  • path (str | PathLike) -- 系统文件结构中的路径

  • home (str, default='~') -- 用于替换主路径的符号。默认为‘~’,但您可能希望改用‘$HOME’或‘%USERPROFILE%’。

返回:

路径:用代字号替换主目录的缩短路径

返回类型:

str

示例

>>> 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')