Why You Should Start Using Pathlib as an Alternative to the Os Module
Author:
Ahmed BesbesLink:
https://towardsdatascience.com/why-you-should-start-using-pathlib-as-an-alternative-to-the-os-module-d9eccd994745Publish Date:
2021.12.16Reviewed Date:
import.research.article.2021.12.16 (Private)
from pathlib import Path
path = Path('/home/johndoe/Documents/pathlib.md')
path.touch()
path.name
#>>> 'pathlib.md'
path.stem
#>>> pathlib
path.suffix
#>>> '.md'
path.parent
#>>> PosixPath('/home/johndoe/Documents')
path.parent.parent
#>>> PosixPath('/home/johndoe')
path.anchor
#>>> '/'
- Negates the need to combine Os with Glob to find paths that match a given pattern.
- Os represents paths at their most simple level: strings whereas pathlib represents them as a class
Get common paths in a command
from pathlib import Path
cwd = Path.cwd()
home = Path.home()
Easy file manipulation
from pathlib import Path
random_file = Path("random_file.txt")
random_file.exists()
# False
random_file.touch()
random_file.exists()
# True
Recursive globbing
from pathlib import Path
# A quite large folder indeed!
path = Path("/Users/ahmed.besbes/anaconda3/")
python_files = path.rglob("**/*.py")
next(python_files)
# PosixPath('/Users/ahmed.besbes/anaconda3/bin/rst2xetex.py')
next(python_files)
# PosixPath('/Users/ahmed.besbes/anaconda3/bin/rst2latex.py')
next(python_files)
# PosixPath('/Users/ahmed.besbes/anaconda3/bin/rst2odt_prepstyles.py')
...
len(list(python_files))
# 67481
.exists()
: To check if the path really exists on the filesystem.is_dir()
: To check if the path corresponds to a directory.is_file()
: To check if the path corresponds to a file.is_absolute()
: To check if the path is absolute.chmod()
: To change the file mode and permissions.is_mount()
: To check if the path is a mount point.suffix
: Get the extension of a file
Backlinks