作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在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/
小米米家智能破壁料理机现已开启预售,这款产品支持破壁熬煮、冷热双打,到手价 379 元。 IT之家了解到,米家智能破壁料理机支持破壁、研磨、碎冰、榨汁、冷热双打。热饮最大容量 1200ml,冷
我是一名优秀的程序员,十分优秀!