使用 Pathlib 确定绝对路径

迈克尔

在python3中,在未知(用户输入)文件路径上操作时,需要支持./r*/*.dat. 计划是使用这样的东西(简化):

paths = []
for test in userinputs:
   paths.extend(pathlib.Path().glob(test))

这对相对路径很有用;但是,当用户提供绝对路径(他们应该被允许这样做)时,代码会失败:

NotImplementedError: Non-relative patterns are unsupported

如果它是一个“简单”的 glob,例如/usr/bin/*,我可以执行以下操作:

test = pathlib.Path("/usr/bin/*")
sources.extend(test.parent.glob(test.name))

但是,就像我的第一个路径示例一样,我需要考虑路径的任何部分中的通配符,例如/usr/b*/*.

有没有一个优雅的解决方案?我觉得我错过了一些明显的东西。

纳尔曼

Path()为其起始目录接受一个参数。
为什么不测试输入以查看是否为绝对路径,然后将其初始化Path()为根目录?就像是:

for test in userinputs:
    if test[0] == '/':
        paths.extend(pathlib.Path('/').glob(test[1:]))
    else:
        paths.extend(pathlib.Path().glob(test))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Python pathlib获取没有文件名的文件的绝对路径

来自分类Dev

如何使用pathlib在Python中获取两个绝对路径之间的相对路径?

来自分类Dev

字体使用绝对路径

来自分类Dev

强制 OpenWindow 使用绝对路径而不使用 http

来自分类Dev

如何使用绝对路径读取配置文件?

来自分类Dev

使用grunt-wiredep的Grunt + Bower的绝对路径

来自分类Dev

使用绝对路径运行Python模块

来自分类Dev

为什么corebuild无法使用绝对路径?

来自分类Dev

使用sed命令删除绝对路径

来自分类Dev

如何使用绝对路径从Java运行Python文件?

来自分类Dev

如何使用Delphi获取INI文件的绝对路径?

来自分类Dev

无法使用绝对路径在cygwin下运行PhantomJS

来自分类Dev

使用绝对路径时,is_file返回false

来自分类Dev

在绝对路径错误的文件上使用:find或gf

来自分类Dev

使用Python完成相对绝对路径

来自分类Dev

使用绝对路径从终端运行jar文件

来自分类Dev

如何使用文件的绝对路径打开文件?

来自分类Dev

使用'find'命令获取文件的绝对路径

来自分类Dev

使用Process调用exe而没有绝对路径

来自分类Dev

php copy()使用目标绝对路径

来自分类Dev

bash中的命令无法使用绝对路径

来自分类Dev

在绝对路径中使用通配符创建文件

来自分类Dev

为什么corebuild无法使用绝对路径?

来自分类Dev

使用JavaScript在MVC中获取文件的绝对路径

来自分类Dev

Laravel:对缓存文件夹使用绝对路径

来自分类Dev

使用绝对路径从终端运行 jar 文件

来自分类Dev

在 Angular 2 + Electron 中使用绝对路径

来自分类Dev

Rails:在 Rails 6 中使用绝对路径

来自分类Dev

如何使用相对路径而不是绝对路径

Related 相关文章

热门标签

归档