在Python编程中,如果需要对文件进行操作的话,有时会需要搜索指定目录下的特定类型的文件。获取子目录或文件列表用得较多的是os.walker
和glob
。大器推荐你用glob
,从下面的示例代码可以显而易见地看出glob
完成相同的功能代码更简洁易读。
glob
如果需要递归列出目录下的子目录或子目录下的文件需要使用**
通配符,并且设置参数recursive
为True
,这样**
通配符才可以匹配零到多个子目录。注意此特性要求Python的版本在3.5及以上。
列出指定目录下的所有.doc
文件
from glob import glob
files = [f for f in glob('I:/work/*.doc')]
for f in files:
print(f)
列出指定目录和子目录下的所有.doc
文件
from glob import glob
files = [f for f in glob('I:/work/**/*.doc', recursive=True)]
for f in files:
print(f)
列出指定目录和子目录下的所有目录
from glob import glob
dirs = [d for d in glob('I:/work/**/', recursive=True)]
for d in dirs:
print(d)
os.walker
os.walker
无法只列出指定目录下的所有.doc
文件,因此未给出示例代码。
列出指定目录和子目录下的所有.doc
文件
import os
files = []
# r=root d=dirs f=files
for r, d, f in os.walk('I:/work/'):
for name in f:
if name.endswith('.doc'):
files.append(os.path.join(r, name))
for f in files:
print(f)
列出指定目录和子目录下的所有目录
import os
dirs = []
# r=root d=dirs f=files
for r, d, f in os.walk('I:/work/'):
for name in d:
dirs.append(os.path.join(r, name))
for d in dirs:
print(d)
glob.png
网友评论