Return a List of Files and Folders With Glob

There’s a great library added in Python 3.5 that lets you return a list of filenames and folders called glob, here’s how to use it.

Return files and folders in current folder.

>>> glob('**')
['scaffolds', 'node_modules', 'yarn.lock', '_config.yml', 'source', 'db.json', 'themes', 'package.json', 'package-lock.json']

Return files and folders recursively

>>> glob('**', recursive=True)
['scaffolds', 'scaffolds/post.md', 'scaffolds/page.md', 'scaffolds/draft.md', 'node_modules', '...']

Return only specific type of files

  • recursively

    >>> glob('*.json', recursive=True)
    ['db.json', 'package.json', 'package-lock.json']
  • non-recursively

    >>> glob('**/*.md', recursive=True)
    ['scaffolds/post.md', 'scaffolds/page.md', 'scaffolds/draft.md', '...']
  • recursively from another folder

    >>> glob('source/**/*.md', recursive=True)
    ['source/README.md', 'source/about/index.md', 'source/_posts/class-inheritance-with-python.md', 'source/_posts/How-to-securely-store-sensitive-configuration-with-dotenv.md', '...']

Print a list of filenames:

  • Relative path

    >>> for file in glob('source/**/*.md', recursive=True):
    ... print(file)
    ...
    'source/README.md'
    'source/about/index.md'
    'source/_posts/class-inheritance-with-python.md'
    'source/_posts/How-to-securely-store-sensitive-configuration-with-dotenv.md'
    'source/_posts/Hello-all.md'
    'source/_posts/return-a-list-of-files-and-absolute-path-with-python.md'
    'source/_posts/scraping-web-data-with-requests-and-beautifulsoup-part-2.md'
  • Absolute path

    >>> import os
    >>> from glob import glob
    >>> for file in glob('source/**/*.md', recursive=True):
    ... print(os.path.abspath(file))
    ...
    '/home/franccesco/workspace/codingdose.info/source/README.md'
    '/home/franccesco/workspace/codingdose.info/source/about/index.md'
    '/home/franccesco/workspace/codingdose.info/source/_posts/class-inheritance-with-python.md'
    '/home/franccesco/workspace/codingdose.info/source/_posts/How-to-securely-store-sensitive-configuration-with-dotenv.md'
    '/home/franccesco/workspace/codingdose.info/source/_posts/Hello-all.md'
    '/home/franccesco/workspace/codingdose.info/source/_posts/return-a-list-of-files-and-absolute-path-with-python.md'
    '/home/franccesco/workspace/codingdose.info/source/_posts/scraping-web-data-with-requests-and-beautifulsoup-part-2.md'

Have fun.