Comprehensive Guide to Python’s Pathlib Library for Modern File System Management
The pathlib
module in Python provides a comprehensive set of classes to handle filesystem paths. It is object-oriented, allowing for easy manipulation and reading of paths. Let’s explore some of the most useful APIs with examples.
Basic Usage
from pathlib import Path path = Path('/home/user') # Creating a Path object print(path) # /home/user
Checking Existence
path = Path('/home/user') print(path.exists()) # Returns True if path exists
Path Manipulations
path = Path('/home/user/docs') # Join paths new_path = path / 'file.txt' print(new_path) # /home/user/docs/file.txt # Parent directory print(path.parent) # /home/user # Name, suffix, and stem print(new_path.name) # file.txt print(new_path.suffix) # .txt print(new_path.stem) # file
Reading and Writing Files
path = Path('example.txt') # Writing to a file path.write_text('Hello, Pathlib!') # Reading from a file content = path.read_text() print(content) # Hello, Pathlib!
Directory Operations
path = Path('/home/user/docs') # List all files and directories for item in path.iterdir(): print(item) # Create a new directory new_dir = path / 'new_folder' new_dir.mkdir(exist_ok=True) # Remove a directory new_dir.rmdir()
Advanced Usage with File Glob Patterns
path = Path('/home/user/docs') # Searching for all text files for txt_file in path.glob('*.txt'): print(txt_file) # Searching for all Python files recursively for py_file in path.rglob('*.py'): print(py_file)
Building an App Example
from pathlib import Path def cleanup_old_logs(logs_dir, days_old): from datetime import datetime, timedelta threshold_date = datetime.now() - timedelta(days=days_old) logs_path = Path(logs_dir) for log_file in logs_path.glob('*.log'): file_modified_time = datetime.fromtimestamp(log_file.stat().st_mtime) if file_modified_time < threshold_date: log_file.unlink() # Remove the file print(f'Removed log file: {log_file}') # Using the function cleanup_old_logs('/var/log/myapp', 30)
In the example above, we created a simple application function named cleanup_old_logs
that removes log files older than a specified number of days.
The pathlib
module is a powerful addition to Python's standard library, making filesystem path manipulation intuitive and straightforward. Its object-oriented design will enhance your code readability and efficiency.
Start using pathlib
in your projects today and enjoy the benefits of modern file system management in Python!
Hash: 40320bd2bc0657126e54d29e92edd83007cb28a432a643d407c9bafc01f10381