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('**') |
Return files and folders recursively
glob('**', recursive=True) |
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.