Exclusão de arquivos e diretórios em Python ⋆ ALexHost SRL

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills
23.01.2025

Exclusão de arquivos e diretórios em Python

Em Python, trabalhar com arquivos e diretórios é uma tarefa comum, especialmente para aplicativos que exigem a manipulação de arquivos. Este tutorial se concentra em métodos avançados de exclusão de arquivos e diretórios usando vários módulos Python, incluindo os, shutil e pathlib. Cada um desses módulos fornece uma funcionalidade diferente para trabalhar com o sistema de arquivos, permitindo que você gerencie arquivos e diretórios com eficiência. Para fazer download do Python, acesse o seguinte link da fonte oficial python.org.

Entendendo os módulos

1. Módulo os

O módulo os oferece a capacidade de usar a funcionalidade dependente do sistema operacional, como ler ou gravar no sistema de arquivos. Ele inclui funções de exclusão de arquivos e diretórios. O uso do módulo os em um ambiente de hospedagem VPS Linux oferece controle efetivo sobre o gerenciamento de arquivos e outras operações no nível do sistema. Esse módulo permite que os desenvolvedores executem ações como leitura, gravação e exclusão de arquivos e diretórios diretamente no servidor

Principais recursos:

  • os.remove(path): Remove o caminho para um arquivo.
  • os.rmdir(path): Remove (destrói) o caminho para um diretório. O diretório deve estar vazio.
  • os.unlink(path): Outro nome para a função os.remove() usada para excluir um arquivo.

2. Módulo shutil

O módulo shutil oferece uma interface de alto nível para trabalhar com arquivos. Ele é particularmente útil para copiar e excluir diretórios e arquivos.

Principais recursos:

  • shutil.rmtree(path): Remove recursivamente um diretório e todo o seu conteúdo, incluindo subdiretórios e arquivos.
  • shutil.move(src, dst): Move um arquivo ou diretório para outro local. Também pode ser usado para excluir arquivos, movendo-os para um diretório inexistente.

3. Módulo Pathlib

O módulo pathlib oferece uma abordagem orientada a objetos para trabalhar com caminhos do sistema de arquivos. Esse módulo apareceu no Python 3.4 e é considerado mais intuitivo e fácil de ler.

Principais recursos:

  • Path.unlink(): Exclui o arquivo.
  • Path.rmdir(): Exclui um diretório vazio.
  • Path.rmtree(): Para excluir um diretório e seu conteúdo, shutil.rmtree() é normalmente usado em conjunto com Path.

Métodos avançados de exclusão de arquivos e diretórios

Uso do módulo os

Veja a seguir como usar o módulo os para excluir arquivos e diretórios:

Opção A: execução em Python interativo

  1. Abra uma sessão interativa do Python digitando:
    python3

    (Use python se for assim que o Python estiver configurado em seu sistema, mas python3 é geralmente o comando recomendado para o Python 3.x).

  2. Copie e cole o código diretamente na sessão interativa (script abaixo)

bird B: Gravação em um arquivo de script Python

  1. Crie um novo arquivo usando um editor de texto como o nano:
    nano remove_file.py
  2. Copie e cole o seguinte código no arquivo (script abaixo)
  3. Agora você pode executar seu script Python no terminal:
    python3 remove_file.py

Remoção de um único arquivo

import os
file_path = 'example.txt'
try:
os.remove(file_path)
print(f'Successfully deleted {file_path}')
except FileNotFoundError:
print(f'O arquivo {file_path} não existe')
except PermissionError:
print(f'Permission denied: unable to delete {file_path}')
except Exception as e:
print(f'Ocorreu um erro: {e}')

Saída:

Excluindo um diretório vazio

Etapa 1: Criar um diretório

Primeiro, crie um diretório vazio chamado example_dir. Isso pode ser feito usando o seguinte comando:

mkdir example _dir

Etapa 2: criar um script Python

Agora você precisa criar um script Python que conterá o código para excluir o diretório vazio. Você pode usar um editor de texto, como o nano, para criar o script.

  1. Abra o nano e crie um novo arquivo Python:
    nano remove_directory.py
  2. Copie e cole o seguinte código no arquivo (código abaixo)
  3. Agora, execute o script Python que você acabou de criar:
    python3 remove_directory.py

import os
caminho_do_diretório = 'exemplo_dir'
try:
os.rmdir(directory_path)

f'Diretório excluído com êxito {directory_path}')
except FileNotFoundError:
print(f'O diretório {directory_path} não existe')
except OSError:
print(f'O diretório {directory_path} não está vazio')
except Exception as e:
print(f'Ocorreu um erro: {e}')

Saída:

Usando o módulo shutil

Etapa 1: Crie um diretório com o conteúdo

Primeiro, crie um diretório chamado example_dir_with_content e adicione alguns arquivos a ele. Isso pode ser feito usando os seguintes comandos:

mkdir example_dir_with_content
touch exemplo_dir_com_conteúdo/arquivo1.txt
toque em exemplo_dir_com_conteúdo/arquivo2.txt

Etapa 2: criar um script Python

Agora você precisa criar um script Python que contenha o código para excluir o diretório e seu conteúdo. Você pode usar um editor de texto, como o nano, para criar o script.

  1. Abra o nano e crie um novo arquivo Python:
    nano remove_directory_content.py
  2. Copie e cole o seguinte código no arquivo (código abaixo)
  3. Agora, execute o script Python que você acabou de criar:
    python3 remove_directory_content.py

Use shutil.rmtree() para remover diretórios com conteúdo:

import shutil
'example_dir_with_content'
try:
shutil.rmtree(directory_path)
print(f'Diretório {directory_path} e seu conteúdo excluídos com êxito')
except FileNotFoundError:
print(f'O diretório {directory_path} não existe')
except PermissionError:
print(f'Permission denied: unable to delete {directory_path}')
except Exception as e:
print(f'Ocorreu um erro: {e}')

Saída:

Usando o módulo pathlib

omódulo pathlib fornece uma interface moderna para os caminhos do sistema de arquivos:

Exclusão de um arquivo

from pathlib import Path
caminho_do_arquivo = Path('exemplo.txt')
try:
file_path.unlink()
print(f'Successfully deleted {file_path}')
except FileNotFoundError:
print(f'O arquivo {file_path} não existe')
except PermissionError:
print(f'Permission denied: unable to delete {file_path}')
except Exception as e:
print(f'Ocorreu um erro: {e}')

Saída:

Exclusão de um diretório vazio

from pathlib import Pathdirectory_path = Path('example_dir'
try:
directory_path.rmdir() # Isso só funcionará se o diretório estiver vazio
print(f'Diretório {directory_path} excluído com êxito')
except FileNotFoundError:
print(f'O diretório {directory_path} não existe')
except OSError:
print(f'O diretório {directory_path} não está vazio')
except Exception as e:
print(f'Ocorreu um erro: {e}')

Saída:

Tratamento gracioso de erros

Ao trabalhar com operações de arquivos, é muito importante tratar as exceções de forma adequada para evitar o travamento do programa. As exceções comuns incluem:

  • FileNotFoundError: Ocorre quando é feita uma tentativa de excluir um arquivo ou diretório inexistente.
  • PermissionError (Erro de permissão): Ocorre quando um usuário não tem as permissões necessárias para excluir um arquivo ou diretório.
  • OSError: Ocorre quando ocorrem vários erros relacionados ao sistema operacional, inclusive uma tentativa de excluir um diretório não vazio.

Conclusão

Neste tutorial, abordamos como usar os módulos Python, como os, shutil e pathlib, para excluir arquivos e diretórios. Cada módulo tem vantagens exclusivas, e entender como usá-los de forma eficaz ampliará sua capacidade de gerenciar sistemas de arquivos em seus aplicativos. Ao dominar essas técnicas, você poderá automatizar tarefas de gerenciamento de arquivos, trabalhar com arquivos de forma mais intuitiva e escrever scripts robustos que interagem com o sistema de arquivos.

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills