Python Tutorials

Dominando Operações com Arquivos e Diretórios em Python

Spread the love

Este tutorial fornece um guia abrangente sobre a manipulação essencial de arquivos e diretórios em Python, aproveitando o poder dos módulos os e shutil. Abordaremos a criação, acesso, listagem, modificação e remoção de diretórios, equipando você com as habilidades para gerenciar seu sistema de arquivos de forma eficaz em seus scripts Python.

Sumário

  1. Criando Diretórios
  2. Obtendo o Diretório Atual
  3. Listando o Conteúdo do Diretório
  4. Alterando o Diretório de Trabalho
  5. Renomeando e Removendo Diretórios
  6. Técnicas de Manipulação de Caminhos
  7. Tratamento Robusto de Erros

1. Criando Diretórios

O módulo os oferece funções para interagir com o sistema operacional. os.mkdir() cria um único diretório, enquanto os.makedirs() lida com a criação de diretórios aninhados. O parâmetro exist_ok previne erros se o diretório já existir.


import os

# Criar um único diretório
os.mkdir("my_new_directory")

# Criar diretórios aninhados
os.makedirs("nested/directories/example", exist_ok=True)

print("Diretórios criados com sucesso!")

2. Obtendo o Diretório Atual

Use os.getcwd() para recuperar o diretório de trabalho atual.


import os

diretorio_atual = os.getcwd()
print(f"Diretório de trabalho atual: {diretorio_atual}")

3. Listando o Conteúdo do Diretório

os.listdir() lista todas as entradas (arquivos e diretórios) dentro de um caminho. Combine-o com os.path.isdir() para filtrar apenas diretórios.


import os

caminho_diretorio = "."
todas_entradas = os.listdir(caminho_diretorio)

diretorios = [entrada for entrada in todas_entradas if os.path.isdir(os.path.join(caminho_diretorio, entrada))]

print("Diretórios:")
for diretorio in diretorios:
    print(diretorio)

4. Alterando o Diretório de Trabalho

os.chdir() altera o diretório de trabalho atual. Sempre inclua tratamento de erros (por exemplo, usando blocos try-except) para gerenciar problemas potenciais, como diretórios inexistentes.


import os

try:
    os.chdir("my_new_directory")
    print(f"Diretório de trabalho atual alterado para: {os.getcwd()}")
    os.chdir("..") # Voltar um nível de diretório
    print(f"Diretório de trabalho atual voltou para: {os.getcwd()}")
except FileNotFoundError:
    print("Erro: Diretório não encontrado.")
except OSError as e:
    print(f"Ocorreu um erro no sistema operacional: {e}")

5. Renomeando e Removendo Diretórios

os.rename() renomeia diretórios. os.rmdir() remove diretórios vazios. Para diretórios não vazios, use shutil.rmtree() com extrema cautela, pois ele exclui recursivamente tudo dentro do diretório de destino. Sempre faça backup de dados importantes antes de usar esta função.


import os
import shutil

# Renomear um diretório
os.rename("my_new_directory", "renamed_directory")

# Remover um diretório vazio
os.rmdir("empty_directory") #Requer um diretório vazio chamado "empty_directory"

# Remover um diretório não vazio (use com extrema cautela!)
shutil.rmtree("non_empty_directory") #Requer um diretório chamado "non_empty_directory" - isto irá deletar tudo dentro.

print("Operações de diretório concluídas.")

6. Técnicas de Manipulação de Caminhos

O módulo os.path fornece ferramentas para manipulação de caminhos segura e portátil, crucial para evitar problemas específicos da plataforma.


import os

# Juntando caminhos com segurança
path = os.path.join("path", "to", "my", "file.txt")

# Obtendo o nome do arquivo e a extensão
nome_arquivo, ext_arquivo = os.path.splitext(path)

# Verificando se um caminho existe
if os.path.exists(path):
    print("Caminho existe")

7. Tratamento Robusto de Erros

Sempre antecipe erros potenciais (por exemplo, FileNotFoundError, PermissionError, OSError) e implemente mecanismos de tratamento de erros apropriados para tornar seu código robusto e evitar travamentos inesperados.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *