Este blog é um complemento do nosso canal no YouTube. Clique em @CanalQb para seguir e acompanhar nossos vídeos!

Sugestões de pesquisas

Google Colab: Como manipular e importar múltiplos arquivos Python

#python; #colab; #jupyter

Google Colab: Como manipular e importar múltiplos arquivos Python

É possível trabalhar com múltiplos arquivos .py dentro do Google Colab, o que permite modularizar o código, reutilizar funções e organizar melhor seus projetos. A seguir, veja várias maneiras de lidar com múltiplos arquivos, importar módulos personalizados e até interagir com notebooks Jupyter.

Salvando arquivos com extensão .py no Colab

No Colab, você pode criar e salvar arquivos Python da seguinte forma:

  • No menu superior, clique em Arquivo > Salvar uma cópia no GitHub.
  • Escolha o repositório e pasta de destino.
  • Altere a extensão do nome do arquivo para .py.

Alternativamente, você pode salvar diretamente com código:

with open('arquivo1.py', 'w') as f:
    f.write("def saudacao():\n    print('Olá do arquivo 1!')")

Importando um arquivo Python dentro de outro

Suponha que você tenha dois arquivos chamados arquivo1.py e arquivo2.py. Para importar o segundo dentro do primeiro:

import arquivo2

Ou, para importar apenas uma função específica:

from arquivo2 import minha_funcao

Certifique-se de que ambos os arquivos estejam no mesmo diretório. Se estiverem em diretórios diferentes, será necessário especificar o caminho relativo ou absoluto.

Executando um script dentro de outro com exec()

Outra forma de rodar um script Python dentro de outro é com o uso da função exec(). Exemplo:

# Dentro de script1.py
exec(open('script2.py').read())

Esse método executa todo o conteúdo do script2.py como se estivesse inserido no script1.py. Ideal para testes ou scripts pequenos, mas não recomendado para projetos maiores onde importações são mais seguras e organizadas.

Chamando um notebook .ipynb dentro de outro com parâmetros

Se você está usando notebooks Jupyter e quer executar um notebook dentro de outro com parâmetros personalizados, utilize o pacote nbparameterise:

!pip install nbparameterise

Notebook com parâmetros:

# Parameters
param1 = 123
param2 = 'abc'
# Demais comandos

Notebook que chama o anterior:

from nbparameterise import extract_parameters, parameter_values, replace_definitions
import nbformat
from nbconvert.preprocessors import ExecutePreprocessor

with open("notebook1.ipynb", 'r', encoding='utf-8') as f:
    nb = nbformat.read(f, as_version=4)

params = extract_parameters(nb)
param_values = parameter_values(params, param1=456, param2='def')
nb = replace_definitions(nb, param_values)

ep = ExecutePreprocessor(timeout=600, kernel_name='python3')
ep.preprocess(nb, {'metadata': {'path': './'}})

Essa abordagem permite flexibilidade, reaproveitamento de notebooks com diferentes entradas e facilita a manutenção de notebooks parametrizados.

Executando funções entre células em um mesmo notebook

Se você possui todas as funções em um único notebook, pode simplesmente organizar o código em células distintas:

Célula 1:

def func1():
    print("Esta é a função 1")

Célula 2:

def func2():
    print("Esta é a função 2")
    func1()

Ao executar a célula da func2(), ela também chamará func1(), desde que a célula onde func1() foi definida já tenha sido executada anteriormente.

Boas práticas ao trabalhar com múltiplos arquivos

  • Evite nomes genéricos para arquivos, como teste.py.
  • Organize os arquivos em pastas por módulo ou funcionalidade.
  • Documente o conteúdo de cada arquivo com docstrings.
  • Use o recurso __name__ == "__main__" para códigos que devem ser executados apenas quando o script é chamado diretamente.

Links úteis e oficiais

Considerações finais

Manipular múltiplos arquivos Python no Google Colab amplia as possibilidades de desenvolvimento, modularização e reuso de código. Escolha a abordagem que melhor se adapta ao seu projeto, levando em conta organização, manutenção e escalabilidade.

Postar um comentário

Comente só assim vamos crescer juntos!
CanalQb mais próximo Quer falar com o CanalQb?
Em que posso te ajudar?
Fale comigo