Como apagar arquivos e diretórios usando Python
-
Excluir arquivos utilizando o módulo
osem Python -
Excluir arquivos utilizando o módulo
pathlibem Python - Excluir arquivos com correspondência de padrões em Python
-
Excluir diretórios utilizando o módulo
.py -
Apaga diretórios utilizando o módulo
pathlibPython -
Apagar diretórios não vazios utilizando o método Python
shutil.rmtree
Este artigo introduz como excluir arquivos e diretórios com pacotes Python embutidos, tais como os, pathlib e shutil.
Excluir arquivos utilizando o módulo os em Python
os é um pacote integrado disponível tanto em Python 2 quanto em Python 3.
Podemos utilizar remove() e unlink() do módulo os para excluir arquivos utilizando o Python. Ambas as funções são semelhantes em ação. Ambas tomam como argumento o caminho do arquivo a ser excluído.
import os
os.remove("test_dir/main.py")
Ele apaga o arquivo chamado main.py localizado dentro do módulo test_dir. Como estamos utilizando o caminho relativo aqui, o test_dir deve estar na mesma pasta raiz que a do nosso programa Python. Também podemos utilizar o caminho absoluto do arquivo.
import os
os.unlink("test_dir/main.py")
Ele também exclui o arquivo chamado main.py localizado dentro do diretório test_dir.
Ambas as funções só podem excluir arquivos. Se dermos o caminho do diretório a ser excluído, obtemos o erro IsADirectoryError.
Da mesma forma, obtemos o FileNotFoundError se o arquivo não estiver presente no caminho especificado.
Se não tivermos permissão para excluir o arquivo, obtemos o erro PermissionError.
Para resolver esses erros ao apagar o arquivo, devemos utilizar o tratamento de exceções.
import os
try:
os.remove("test_dir/main.py")
except OSError as e:
print(f"Error:{ e.strerror}")
Resultado:
Error:No such file or directory
Se não houver tal arquivo, obtemos o erro impresso na saída em vez de todo o programa a ser bloqueado.
Excluir arquivos utilizando o módulo pathlib em Python
Para remover arquivos utilizando o módulo pathlib, nós criamos inicialmente um objeto pathlib definido no módulo pathlib. Em seguida, utilizamos o método unlink() para apagar o arquivo.
from pathlib import Path
filePath = Path("test_dir/main.py")
try:
filePath.unlink()
except OSError as e:
print(f"Error:{ e.strerror}")
Aqui, nós instanciamos o objeto filePath da classe Path com a localização do arquivo a ser excluído.
O módulo pathlib só está disponível em Python 3.4 e acima. Para Python 2, precisamos instalar o módulo utilizando o pip.
Excluir arquivos com correspondência de padrões em Python
Podemos utilizar o módulo glob para combinar padrões em arquivos e depois de coletar todos os arquivos que combinam com o padrão, podemos excluir todos eles utilizando qualquer um dos métodos especificados acima.
import os
import glob
py_files = glob.glob("test_dir/*.py")
for py_file in py_files:
try:
os.remove(py_file)
except OSError as e:
print(f"Error:{ e.strerror}")
Isso exclui todos os arquivos no diretório test_dir com extensão .py.
Excluir diretórios utilizando o módulo .py
Para delimitar os diretórios utilizando Python, podemos utilizar os diretórios os, pathlib e shutlib. Os os e pathlib só podem excluir diretórios vazios enquanto o shutlib também pode remover diretórios não vazios.
import os
dirPath = "test_dir"
try:
os.rmdir(dirPath)
except OSError as e:
print(f"Error:{ e.strerror}")
Ele apaga o diretório vazio test_dir em nosso diretório de trabalho atual.
Apaga diretórios utilizando o módulo pathlib Python
Se o diretório não estiver vazio o diretório não pode ser removido utilizando este método, obtemos uma saída do programa dizendo Error: Directory not empty.
Também podemos utilizar o módulo pathlib para remover diretórios não vazios.
from pathlib import Path
dirPath = Path("test_dir")
try:
dirPath.rmdir()
except OSError as e:
print(f"Error:{ e.strerror}")
Ele também apaga o diretório vazio test_dir em nosso diretório de trabalho atual.
Apagar diretórios não vazios utilizando o método Python shutil.rmtree
Para apagar diretórios não vazios utilizando Python , utilizamos o método rmtree do módulo shutil.
import shutil
dirPath = "test_dir"
try:
shutil.rmtree(dirPath)
except OSError as e:
print(f"Error:{ e.strerror}")
Ele exclui o diretório test_dir em nosso diretório de trabalho atual e todo o seu conteúdo.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArtigo relacionado - Python File
- Como obter todos os arquivos de um diretório
- Como Anexar Texto a um Arquivo em Python
- Como verificar se um arquivo existe em Python
- Como encontrar ficheiros com uma certa extensão apenas em Python
- Como ler linhas específicas a partir de um arquivo em Python
- Como escrever linha por linha em um arquivo usando Python
