首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用glob.glob模块搜索子文件夹?

如何使用glob.glob模块搜索子文件夹?
EN

Stack Overflow用户
提问于 2013-02-10 21:27:02
回答 11查看 223.7K关注 0票数 146

我想打开文件夹中的一系列子文件夹,找到一些文本文件并打印其中的几行。我使用的是:

代码语言:javascript
复制
configfiles = glob.glob('C:/Users/sam/Desktop/file1/*.txt')

但是这也不能访问子文件夹。有人知道如何使用相同的命令来访问子文件夹吗?

EN

回答 11

Stack Overflow用户

发布于 2013-02-10 21:47:12

要在立即子目录中查找文件,请执行以下操作:

代码语言:javascript
复制
configfiles = glob.glob(r'C:\Users\sam\Desktop\*\*.txt')

对于遍历所有子目录的递归版本,可以使用**并传递recursive=True since Python 3.5

代码语言:javascript
复制
configfiles = glob.glob(r'C:\Users\sam\Desktop\**\*.txt', recursive=True)

两个函数调用都返回列表。您可以使用glob.iglob()逐个返回路径。或use pathlib

代码语言:javascript
复制
from pathlib import Path

path = Path(r'C:\Users\sam\Desktop')
txt_files_only_subdirs = path.glob('*/*.txt')
txt_files_all_recursively = path.rglob('*.txt') # including the current dir

这两种方法都返回迭代器(您可以逐个获取路径)。

票数 25
EN

Stack Overflow用户

发布于 2014-03-14 03:10:15

glob2包支持通配符,并且速度相当快

代码语言:javascript
复制
code = '''
import glob2
glob2.glob("files/*/**")
'''
timeit.timeit(code, number=1)

在我的笔记本电脑上,匹配>60,000 file paths大约需要2秒。

票数 17
EN

Stack Overflow用户

发布于 2013-02-12 09:12:10

您可以在Python2.6中使用Formic

代码语言:javascript
复制
import formic
fileset = formic.FileSet(include="**/*.txt", directory="C:/Users/sam/Desktop/")

披露-我是这个包的作者。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14798220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档