Como apagar arquivos e diretórios usando Python
-
Excluir arquivos utilizando o módulo
os
em Python -
Excluir arquivos utilizando o módulo
pathlib
em 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
pathlib
Python -
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
- Gravar linha por linha em um arquivo usando Python