有没有更好的方法来使用glob。Glob在python中获取多个文件类型的列表,如.txt, .mdown和.markdown?现在我有这样的东西:
projectFiles1 = glob.glob( os.path.join(projectDir, '*.txt') )
projectFiles2 = glob.glob( os.path.join(projectDir, '*.mdown') )
projectFiles3 = glob.glob( os.path.join(projectDir, '*.markdown') )
我已经发布了Formic,它以类似于Apache Ant的FileSet和glob的方式实现了多个包含。
搜索可以实现:
import formic
patterns = ["*.txt", "*.markdown", "*.mdown"]
fileset = formic.FileSet(directory=projectDir, include=patterns)
for file_name in fileset.qualified_files():
# Do something with file_name
因为已经实现了完整的Ant glob,所以你可以在每个模式中包含不同的目录,所以你可以在一个子目录中只选择那些.txt文件,而在另一个子目录中选择.markdown,例如:
patterns = [ "/unformatted/**/*.txt", "/formatted/**/*.mdown" ]
我希望这能有所帮助。
from glob import glob
files = glob('*.gif')
files.extend(glob('*.png'))
files.extend(glob('*.jpg'))
print(files)
如果你需要指定一个路径,循环匹配模式,并保持连接在循环中简单:
from os.path import join
from glob import glob
files = []
for ext in ('*.gif', '*.png', '*.jpg'):
files.extend(glob(join("path/to/dir", ext)))
print(files)