Perguntas mais frequentes

Por que a instrução del no Python não pode excluir dados referenciados por variáveis?

Last Published: April 26, 2020

Resposta

A intenção da função del, conhecida como 'delete', em relação à exclusão de um nome de variável, é remover os vínculos de nome do local ou do namespace global. Essa função Python pura não se destina a excluir fisicamente os dados do disco ou da memória referenciada pela variável.

Por exemplo, foi escrito um código que executa as seguintes tarefas:

1. Usar uma variável para apontar para uma tabela de entrada
2. Usar uma variável para apontar para uma tabela de saída
3. Verificar se a tabela de saída existe e, em caso afirmativo, exclua-a
4. Copiar a tabela de entrada para o local da tabela de saída

De acordo com os requisitos acima, a instrução del não pode ser usada para excluir os dados do disco, ou seja, ela não funciona como a tecla "Delete" no teclado para remover um arquivo. Se o código for executado dessa maneira, conforme mostrado na imagem a seguir, um NameError será lançado ao referenciar a variável não vinculada por meio da chamada à instrução del.
[O-Image]
Para excluir os dados do disco, use a função apropriada para excluir arquivos do disco ou da memória. Nesse caso, utilize uma das funções fornecidas pelo módulo ArcPy da Esri.
[O-Image]
Nos casos em que os dados que estão sendo excluídos são analisáveis pelo sistema, é possível usar métodos puros de Python para a exclusão de dados.
[O-Image]
Resumindo, a instrução del em Python não foi projetada para remover fisicamente dados do disco. Conforme a documentação do Python, "Excluir um nome remove o vínculo dele com o namespace local ou global, dependendo se o nome aparece em uma instrução global no mesmo bloco de código. Se ele não estiver vinculado, será exibida uma exceção NameError."

Documentação Oficial do Python: Seção 6.5 - A instrução del

ID do Artigo:000012415

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com suporte técnico

Baixe o Esri Support App

Ir para opções de download

Informações Relacionadas

Descubra mais sobre este tema