“Em Python, a palavra -chave é usada para tornar o código mais claro e mais compreensível. Torna recursos comuns, como fluxos de arquivo mais fáceis de lidar. A palavra-chave "com" em Python substitui uma abreviação simples para um bloco de tentativa. Ele também garante que os recursos sejam fechados imediatamente após serem processados. Um caso popular de usar a palavra -chave "com" é ler/escrever em um arquivo. Um gerente de contexto é um método ou classe que auxilia os usuários com palavras -chave. Um gerente de contexto permite que você abra e feche recursos conforme necessário. Considere onde o uso da palavra -chave limpa o código nos exemplos a seguir.”
Exemplo 1: Manuseio de arquivos sem a palavra -chave "com"
Em primeiro lugar, mostramos os dois exemplos de manuseio de arquivos sem o
"Com" palavra -chave. Aqui, podemos simplesmente abrir o arquivo my_file no modo de gravação “w.”Com o método de gravação; Nós inserimos o texto dentro do arquivo. O arquivo é fechado invocando o método de fechamento.
Você pode descobrir que o texto é incorporado dentro do my_file.
Há um segundo exemplo de manuseio do arquivo com o bloco de tentativa.
O script acima tem a seguinte saída.
Exemplo 2: Manuseio de arquivos com a palavra -chave "com"
Agora, no exemplo a seguir, Snap, utilize a palavra -chave "com" para manuseio de arquivos.
Não há necessidade de chamar arquivos além das duas primeiras implementações. Ao empregar a palavra -chave "com", Close () é chamado. A declaração "com" garante que os recursos sejam obtidos e liberados corretamente. Durante o arquivo, há uma exceção. A função write () na primeira abordagem pode proibir o arquivo de fechar corretamente, resultando em vários erros no código, pois muitas modificações em arquivos não funcionam corretamente até que o arquivo seja fechado corretamente. É assim que a palavra -chave nos permite escrever no arquivo. O texto do arquivo é mostrado dentro do my_file.
A segunda solução no exemplo anterior lida com todas as exceções, mas a utilização da palavra -chave "com" torna o código muito mais conciso e claro. Como resultado, a declaração com a declaração ajuda a evitar problemas e escapar, confirmando que um objeto é renunciado corretamente quando o código que o usa é totalmente executado. A palavra-chave com a chave é comumente usada junto com os fluxos de arquivo, como demonstrado acima, bem como bloqueios, soquetes, subprocessos, telnet e outros tipos de conexões.
Exemplo 3: Manuseio de arquivos definido pelo usuário com a palavra-chave "com"
Não há nada incomum no Open () que o torne adequado para uso com a palavra-chave "com", pois a mesma capacidade pode ser encontrada em objetos definidos pelo usuário. Ao usar uma palavra -chave "com" em seus objetos, você nunca deixará um recurso aberto. Os procedimentos __enter __ () e __Exit __ () nas operações de objeto são tudo o que é necessário para usar a palavra-chave "com" em objetos definidos pelo usuário. Dê uma olhada no código abaixo para obter mais informações.
Vejamos o código acima mencionado. O objeto de função () do MessageWriter é imediatamente após a palavra -chave "com", como você pode ver. O Python cria um objeto MessageWriter e, em seguida, executa o método __enter __ () assim que o programa atingir a área da palavra -chave "com". Neste método __enter __ (), especifique o recurso a ser usado no objeto. O descritor do recurso obtido sempre deve ser retornado por este método __enter __ ().
O texto é armazenado no my_file3.txt aqui pelo Python "com" palavra -chave.
Exemplo 4: Usando o pacote ContextLib para manuseio de arquivos com a palavra -chave "com"
O sistema operacional fornece essas alças para acessar os recursos necessários. Aqui, o descritor do recurso de fluxo de arquivos é arquivado no bloco de código subsequente.
A técnica __enter __ () gera e retorna um descritor de arquivo na amostra de MessageWriter mencionada acima. O método Enter () é retornado por um descritor de arquivo que é referido como um arquivo neste exemplo. Dentro da declaração "com" está a seção de código que usa o recurso adquirido. O procedimento __Exit __ () é considerado quando o programa dentro do corpo "com" foi executado. No método __Exit __ (), todos os recursos coletados são abandonados. Com objetos definidos pelo usuário, utilizamos a palavra-chave "com" dessa maneira.
Gerente de contexto:
Gerenciador de contexto refere-se à interface das operações __enter __ () e __Exit __ () que permitem a palavra-chave "com" em objetos definidos pelo usuário.
O gerenciador de contexto baseado em classes acima mencionado não é a única abordagem para ativar a palavra-chave "com" em objetos definidos pelo usuário. O módulo contextlib estende a interface do Fundamental Context Manager com algumas abstrações extras. Usando o módulo contextlib, o objeto MessageWriter pode ser atualizado pelo gerenciador de contexto.
O arquivo aberto da função () é um método gerador nesta amostra de código devido à declaração geral de rendimento em sua definição.
Quando a função Open File () é usada, um arquivo nomeado de propriedade é criado. O chamador recebe este descritor de recursos, que é representado acima pela variável meu arquivo. O controle do programa retorna ao método Open File () após o programa dentro da seção com a seção. O método open file () retoma sua execução após a declaração de rendimento e executa o código que o segue. Esta seção do código ocorre logo após a declaração de rendimento e libera os recursos que foram adquiridos. @ContextManager é um decorador neste caso.
Internamente, a versão antiga baseada em classe dos gerentes de contexto e a implementação baseada em novo gerador são idênticos. Embora o último pareça ser mais legível, exige um entendimento de geradores, decoradores e rendimento.
Com a ajuda do contextLib, armazenamos com sucesso o recorde no my_file4.txt com a palavra -chave "com" da seguinte forma:
Conclusão
A partir de agora, vimos como a declaração "com" lida com exceções de forma inteligente. A palavra -chave "com" também ajuda a fechar efetivamente o gerenciador de contexto, que pode ter sido deixado aberto durante a programação. A palavra-chave com o substituto das declarações de tentativa/finalmente manipulação de erros que são frequentemente usadas. Mostramos alguns casos de uso da palavra -chave "com" para manuseio de arquivos.