Pathlib Is Wonderful!
pathlib is a wonderful addition to the Python 3 standard library. The library is an “Object-oriented filesystem paths” module which combines the best of Python’s file system modules like
glob to name a few. This simplifies the number of modules you’ll have to import to work with files and folders.
Here are some highlights that I have noticed in just a few days of playing with the pathlib.
Working with folders
>>> from pathlib import Path >>> Path('docs').exists() False >>> Path('docs').mkdir() >>> Path('docs').is_dir() True
Listing all of the files in a folder
>>> Path('docs').glob('*.md') <generator object Path.glob at 0x1128ee258> # Since generator output isn't obvious :) >>> [item for item in Path('docs').glob('*.md')] [PosixPath('docs/README.md')]
Working with files
>>> Path('docs', 'README.md').is_file() True >>> Path('docs').joinpath('README.md')
Opening a file
Writing to a file
>>> Path('README.md').write_text('Read the Docs!')
Reading from file
>>> Path('README.md').read_text() 'Read the Docs!'
What about Python 2?
Even though pathlib is built into Python 3, there is a Python 2.7 backport for anyone who can’t switch yet.
Thank you George Hickman for pointing this out to me on Twitter!
There’s even a backport for py2!— George Hickman (@ghickman) June 15, 2017