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.