How do you handle memory management and large-scale data processing in Python without exhausting system resources?