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
03.06.2025

Eliminar ficheiros e diretórios em Python

Eliminação avançada de ficheiros e diretórios em Python na AlexHost VPS

Por que deletar arquivos em Python? Gerir ficheiros e diretórios é uma tarefa essencial para os programadores, especialmente num VPS Linux da AlexHost que aloja aplicações dinâmicas ou plataformas CMS como o WordPress. Os módulos os, shutil e pathlib do Python tornam a exclusão de arquivos e diretórios eficiente e segura, com os SSDs e o acesso root da AlexHost garantindo o melhor desempenho. Este guia cobre métodos avançados de eliminação, completos com tratamento de erros, para uma gestão de ficheiros sem falhas.

Entendendo os módulos

1. Módulo os

O módulo os fornece a capacidade de utilizar funcionalidades dependentes do sistema operativo, como ler ou escrever no sistema de ficheiros. Inclui funções de eliminação de ficheiros e diretórios. A utilização do módulo os num ambiente de alojamento VPS Linux proporciona um controlo eficaz da gestão de ficheiros e de outras operações ao nível do sistema. Este módulo permite que os programadores executem acções como a leitura, escrita e eliminação de ficheiros 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 apagar um arquivo.

2. Módulo shutil

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

Principais caraterísticas:

  • 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 apagar arquivos movendo-os para um diretório inexistente.

3. Módulo Pathlib

O módulo pathlib fornece uma abordagem orientada a objectos para trabalhar com caminhos do sistema de ficheiros. Este módulo apareceu no Python 3.4 e é considerado mais intuitivo e fácil de ler

Principais caraterísticas:

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

Métodos avançados para apagar ficheiros e diretórios

Usando o módulo os

Aqui está como usar o módulo os para excluir arquivos e diretórios

Opção A: Executando em Python Interativo

  1. Abra uma sessão Python interactiva escrevendo
    python3
    #

    (Utilize python se é assim que o Python está configurado no seu sistema, mas python3 é normalmente o comando recomendado para Python 3.x).

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

bird B: Escrever para um ficheiro de script Python

  1. Crie um novo ficheiro usando um editor de texto como o nano
    nano remove_file.py
  2. Copie e cole o seguinte código no ficheiro (script abaixo)
  3. Agora podes executar o teu script Python a partir do terminal
    python3 remove_file.py

Remover um único ficheiro

import os
file_path = 'example.txt'
try:
os.remove(file_path)
print(f'Successfully deleted {file_path}')
except FileNotFoundError:
print(f'The file {file_path} does not exist')
except PermissionError:
print(f'Permission denied: unable to delete {file_path}')
except Exception as e:
print(f'An error occurred: {e}')

Saída:

Eliminando um diretório vazio

Passo 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

Passo 2: Criar um script Python

Agora precisa de criar um script Python que irá conter o código para eliminar o diretório vazio. Pode utilizar um editor de texto como o nano para criar o script

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

import os
directory_path = 'example_dir'
try:
os.rmdir(directory_path)

f'Successfully deleted directory {directory_path}')
except FileNotFoundError:
print(f'The directory {directory_path} does not exist')
except OSError:
print(f'The directory {directory_path} is not empty')
except Exception as e:
print(f'An error occurred: {e}')
Saída

Usando o módulo shutil

Passo 1: Criar um diretório com os conteúdos

Primeiro, crie um diretório chamado example_dir_with_content e adicione-lhe alguns ficheiros. Isso pode ser feito usando os seguintes comandos

mkdir example_dir_with_content
touch example_dir_with_content/file1.txt
touch example_dir_with_content/file2.txt

Passo 2: Criar um script Python

Agora é necessário criar um script Python que contenha o código para eliminar o diretório e o seu conteúdo. Pode utilizar um editor de texto como o nano para criar o script

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

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

import shutil
'example_dir_with_content'
try:
shutil.rmtree(directory_path)
print(f'Successfully deleted directory {directory_path} and its contents')
except FileNotFoundError:
print(f'The directory {directory_path} does not exist')
except PermissionError:
print(f'Permission denied: unable to delete {directory_path}')
except Exception as e:
print(f'An error occurred: {e}')
Saída

Usando o módulo pathlib

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

Apagar um ficheiro

from pathlib import Path
file_path = Path('example.txt')
try:
file_path.unlink()
print(f'Successfully deleted {file_path}')
except FileNotFoundError:
print(f'The file {file_path} does not exist')
except PermissionError:
print(f'Permission denied: unable to delete {file_path}')
except Exception as e:
print(f'An error occurred: {e}')
Saída

Eliminação de um diretório vazio

from pathlib import Pathdirectory_path = Path('example_dir'
try:
directory_path.rmdir() # This will only work if the directory is empty
print(f'Successfully deleted directory {directory_path}')
except FileNotFoundError:
print(f'The directory {directory_path} does not exist')
except OSError:
print(f'The directory {directory_path} is not empty')
except Exception as e:
print(f'An error occurred: {e}')
Saída:

Tratamento gracioso de erros

Ao trabalhar com operações de ficheiros, é muito importante tratar as excepções de forma graciosa para evitar que o programa falhe. As exceções comuns incluem

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

Conclusão

Neste tutorial, cobrimos como usar os módulos Python como os, shutil e pathlib para excluir arquivos e diretórios. Cada módulo tem vantagens únicas, e entender como usá-los efetivamente expandirá sua capacidade de gerenciar sistemas de arquivos em seus aplicativos. Ao dominar essas técnicas, você será capaz de 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