使用 glob 在三个子文件夹中递归查找所有 zip 文件
Using glob to find all zip files recursively in three sub folder
我试图只查看三个特定的子文件夹,然后递归地创建文件夹内所有 zip 文件的列表。我可以只用 1 个文件夹轻松地做到这一点,并递归地查看输入路径中的所有子文件夹,但是还有其他创建的文件夹我们无法使用,而且我们不知道文件夹名称是什么。所以这就是我所在的位置,我不确定如何将三个子文件夹正确传递给 glob。
# using glob, create a list of all the zip files in specified sub directories COMM, NMR, and NMH inside of input_path
zip_file = glob.glob(os.path.join(inputpath, "/comm/*.zip,/nmr/*.zip,/nmh/*.zip"), recursive=True)
#print(zip_file)
print(f"Found {len(zip_file)} zip files")
其中带逗号的字符串是...只是一个字符串。如果你想执行三个 globs,你需要像
这样的东西
zip_file = []
for dir in {"comm", "nmr", "nmh"}:
zip_file.extend(glob.glob(os.path.join(inputpath, dir, "*.zip"), recursive=True)
正如@Barmar 在评论中指出的那样,如果您想在这些文件夹中的任何位置查找 zip 文件,模式需要为 ...(os.path.join(inputpath, dir, "**/*.zip")
。如果没有,也许编辑您的问题以提供您要遍历的结构的示例。
我试图只查看三个特定的子文件夹,然后递归地创建文件夹内所有 zip 文件的列表。我可以只用 1 个文件夹轻松地做到这一点,并递归地查看输入路径中的所有子文件夹,但是还有其他创建的文件夹我们无法使用,而且我们不知道文件夹名称是什么。所以这就是我所在的位置,我不确定如何将三个子文件夹正确传递给 glob。
# using glob, create a list of all the zip files in specified sub directories COMM, NMR, and NMH inside of input_path
zip_file = glob.glob(os.path.join(inputpath, "/comm/*.zip,/nmr/*.zip,/nmh/*.zip"), recursive=True)
#print(zip_file)
print(f"Found {len(zip_file)} zip files")
其中带逗号的字符串是...只是一个字符串。如果你想执行三个 globs,你需要像
这样的东西zip_file = []
for dir in {"comm", "nmr", "nmh"}:
zip_file.extend(glob.glob(os.path.join(inputpath, dir, "*.zip"), recursive=True)
正如@Barmar 在评论中指出的那样,如果您想在这些文件夹中的任何位置查找 zip 文件,模式需要为 ...(os.path.join(inputpath, dir, "**/*.zip")
。如果没有,也许编辑您的问题以提供您要遍历的结构的示例。