【发布时间】:2020-05-11 06:32:10
【问题描述】:
我正在搜索文件夹的层次结构:
files = glob(os.path.join(fileroot,somefolder,'**/*.npy'),recursive=True)
它适用于某些文件夹而不适用于其他文件夹。我也尝试过其他方法:
from pathlib import Path
for file_path in Path(os.path.join(fileroot,somefolder)).glob('**/*.npy'):
print(file_path)
已尝试废弃“npy”以查看是否在没有扩展名的情况下发现它并且没有运气。我错过了什么?
我尝试将包含 npy 文件的文件夹移到一个目录上,这使得它们可以找到..所以我对递归参数的看法很糟糕。
使用上面的递归 glob,我可以找到 2 个文件夹深的文件(即 fileroot/somefolder/folder1/folder2/*npy),但不能再找到(fileroot/somefolder/folder1/folder2/folder3/*npy)。
我还注意到,将 recursive 设置为 False 时,我得到了相同的结果,因此似乎由于某种原因,recursive 命令被忽略了
【问题讨论】:
-
递归
glob.glob似乎在我的系统上运行良好。如果您可以更新您的问题以显示可重现的示例,那就太棒了(例如,“当我的文件像这样组织时,它不起作用......”)。 -
我稍微更新了问题
-
通配符为
*.npy找不到*npy文件。 -
原来是文件路径太长的问题,缩短某些文件夹名称会使递归搜索工作......烦人
标签: python recursion search directory glob