pathlib in PythonThe
pathlib module, introduced in Python 3.4, provides an object-oriented interface for working with filesystem paths. It makes your code cleaner, more readable, and platform-independent, saving you from the complexities of string manipulation that come with older modules like os.path.---
#### Why Use
pathlib?• Object-Oriented: Paths are objects with methods, not just strings.
• Intuitive Operators: Use the
/ operator to join paths naturally.• Platform Agnostic: Automatically handles differences between Windows (
\) and Unix-like (/) path separators.• Cleaner Code: Methods like
.exists(), .is_file(), and .read_text() simplify common operations.---
1. Creating a Path Object
The first step is to import the
Path class and create an object representing a path on your filesystem.from pathlib import Path
# Create a Path object
# This path might not exist yet, it's just an object representing it.
p = Path('/home/user/documents/report.txt')
2. Accessing Path Components
Once you have a
Path object, you can easily inspect its various parts without any string splitting.# Get the full file name including the extension
print(f"File Name: {p.name}")
# Get the parent directory
print(f"Parent Directory: {p.parent}")
# Get the file name without the extension
print(f"File Stem: {p.stem}")
# Get the file extension
print(f"File Suffix: {p.suffix}")
3. Checking Path Properties
pathlib makes it trivial to check the status of a path.# Check if the path exists on the filesystem
print(f"Exists: {p.exists()}")
# Check if it's a file
print(f"Is File: {p.is_file()}")
# Check if it's a directory
print(f"Is Directory: {p.is_dir()}")
4. Manipulating Paths
Modifying paths is clean and intuitive. The
/ operator is used to join path components, and methods like .rename() handle file operations.# Join paths using the '/' operator
new_dir = p.parent / 'archive'
# Create a new path by renaming the file
new_path = new_dir / 'old_report.txt'
print(f"New Path: {new_path}")
# To actually rename the file on the filesystem:
# p.rename(new_path)
5. Working with Directories
pathlib provides simple methods for creating and iterating over directories.# Create a directory (and any necessary parent directories)
# exist_ok=True prevents an error if the directory already exists
archive_dir = Path('/home/user/documents/archive')
archive_dir.mkdir(parents=True, exist_ok=True)
# Find all .txt files in a directory
docs_dir = Path('/home/user/documents')
for file in docs_dir.glob('*.txt'):
print(f"Found File: {file.name}")
---
Putting It All Together: A Complete Example
This script will perform all the operations discussed and generate the exact output shown in the prompt. For this to be a runnable example, it first creates a temporary directory structure and files.