How can I search sub-folders using glob.glob module? [duplicate]

In Python 3.5 and newer use the new recursive **/ functionality: configfiles = glob.glob(‘C:/Users/sam/Desktop/file1/**/*.txt’, recursive=True) When recursive is set, ** followed by a path separator matches 0 or more subdirectories. In earlier Python versions, glob.glob() cannot list files in subdirectories recursively. In that case I’d use os.walk() combined with fnmatch.filter() instead: import os import fnmatch … Read more

glob exclude pattern

The pattern rules for glob are not regular expressions. Instead, they follow standard Unix path expansion rules. There are only a few special characters: two different wild-cards, and character ranges are supported [from pymotw: glob – Filename pattern matching]. So you can exclude some files with patterns. For example to exclude manifests files (files starting … Read more

Recursively add files by pattern

You can use git add [path]/\*.java to add java files from subdirectories, e.g. git add ./\*.java for current directory. From git add documentation: Adds content from all *.txt files under Documentation directory and its subdirectories: $ git add Documentation/\*.txt Note that the asterisk * is quoted from the shell in this example; this lets the … Read more

Python glob multiple filetypes

Maybe there is a better way, but how about: import glob types = (‘*.pdf’, ‘*.cpp’) # the tuple of file types files_grabbed = [] for files in types: files_grabbed.extend(glob.glob(files)) # files_grabbed is the list of pdf and cpp files Perhaps there is another way, so wait in case someone else comes up with a better … Read more

How are glob.glob()’s return values ordered?

Order is arbitrary, but you can sort them yourself If you want sorted by name: sorted(glob.glob(‘*.png’)) sorted by modification time: import os sorted(glob.glob(‘*.png’), key=os.path.getmtime) sorted by size: import os sorted(glob.glob(‘*.png’), key=os.path.getsize) etc.

Test whether a glob has any matches in Bash

Bash-specific solution: compgen -G “<glob-pattern>” Escape the pattern or it’ll get pre-expanded into matches. Exit status is: 1 for no-match, 0 for ‘one or more matches’ stdout is a list of files matching the glob. I think this is the best option in terms of conciseness and minimizing potential side effects. Example: if compgen -G … Read more

How to count the number of files in a directory using Python

os.listdir() will be slightly more efficient than using glob.glob. To test if a filename is an ordinary file (and not a directory or other entity), use os.path.isfile(): import os, os.path # simple version for working with CWD print len([name for name in os.listdir(‘.’) if os.path.isfile(name)]) # path joining version for other paths DIR = ‘/tmp’ … Read more