gpt4 book ai didi

python - 使用 Pathlib 通配绝对路径

转载 作者:行者123 更新时间:2023-12-04 13:19:00 29 4
gpt4 key购买 nike

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

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

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

NotImplementedError:不支持非相对模式

如果它是一个“简单”的 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))

关于python - 使用 Pathlib 通配绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56311703/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com