0

我试图找到位于一个目录上方并包含特定单词的路径。例如,我试图在这里找到的路径将是 /whatever/path/2343blah344

        oldpath = '/whatever/path/itis'
        newpath = os.path.join(os.path.dirname(oldpath), '/*blah*')

当我打印 newpath 时,它只显示为 /*blah,所以我很确定 * 不起作用,或者这不是处理它的正确方法。

4

2 回答 2

2

需要明确的是, os.path.join 适用于文本字符串。它实际上并没有以任何复杂的方式将它们与底层操作系统进行比较。这对于效率和当您想要创建不绑定到当前正在执行的计算机的路径时都很有用。

正如 Burhan Khalid 建议的那样,glob 是实现您真正想要的最佳方式。如果出于某种原因你想用 os 库来做这一切,那么你可以做一些事情,比如使用os.walk来获得所有的可能性,然后过滤这些可能性。

于 2012-10-17T16:24:25.293 回答
2

基于你只期待一场比赛......

import glob
oldpath = '/whatever/path/itis'
newpath = glob.glob(os.path.join(os.dirname(oldpath), '*blah*/'))[0]
于 2012-10-17T16:24:56.357 回答