O método with é uma ferramenta útil para facilitar a manipulação de arquivos externos.
Para manipular arquivos, precisamos nos atentar em abrir I/O e o mais importante, fechar o I/O.
Utilizando o método with não precisamos nos preocupar com o processo de fechamento de I/O.
O maior problema quando trabalhamos com I/O é o esquecer de fechar a conexão e ai começam os problemas de consumo de memória e erros relacionados a conexões abertas.
Apesar do foco ser na Stack Python, isso acontece com a maioria das linguagens de programação.
Trabalhar com Python hoje em dia é algo tão importante que programadores de outras stacks utilizam Python para criar ferramentas auxiliares devido a facilidade de criação das mesmas.
Mas muitas vezes, começamos a criar várias ferramentas e algumas não utilizamos mais e aquelas bibliotecas que baixamos para essas ferramentas começam a ocupar espaço em disco, podendo até conflitar com outras.
Para evitar isso, o ambiente Python possibilita criar ambientes virtuais que ficam isolados do ambiente externo.
Essa capacidade é chamada de venv, onde podemos criar um ambiente virtual sem comprometer o sistema externo.
Outra vantagem é que se ocorrer algum tipo de problema relacionado a bibliotecas mal instaladas, podemos desfazer o ambiente virtual e criar outro.
Instalando e testando venv.
Primeiro precisamos instalar o venv via apt-get: $ sudo apt-get install python3-venv
Se foi o ambiente foi criado, vai ser apresentado o prompt: (sidney-env) sidney@sidney-Aspire-4745:/tmp$
Pronto, agora podemos trabalhar com um ambiente virtual totalmente isolado.
Para apagar esse ambiente virtual é só executar o comando: $ deactivate $ rm -r sidney-env
Conclusão.
Assim como o Docker possibilita criar ambientes conteinerizados facilitando o escalonamento e remoção, o venv possibilita criação de ambientes isolados onde pode se trabalhar sem medo de afetar o sistema externo.