Python- Google Colab - Manipulando 2 arquivos py
Canal Qb

é possível salvar arquivos no Google Colab com extensão ".py" e chamar um arquivo a partir de outro.

Para salvar um arquivo com extensão ".py", você pode clicar no menu Arquivo e escolher a opção "Salvar uma cópia no GitHub". Na janela que aparecerá, escolha a pasta do repositório do GitHub onde deseja salvar o arquivo e adicione a extensão ".py" ao nome do arquivo.

Para chamar um arquivo a partir de outro, basta utilizar a função "import". Suponha que você tenha dois arquivos: "arquivo1.py" e "arquivo2.py". Para chamar o arquivo "arquivo2.py" a partir do "arquivo1.py", basta adicionar a seguinte linha no "arquivo1.py": 
import arquivo2
Assumindo que ambos os arquivos estejam na mesma pasta, o Python irá buscar o arquivo "arquivo2.py" e importá-lo para o "arquivo1.py".

Caso você queira chamar uma função específica do "arquivo2.py", basta utilizar a seguinte sintaxe: 
from arquivo2 import nome_da_funcao
Assumindo que a função que você deseja chamar no "arquivo2.py" se chama "minha_funcao", a linha de código ficaria assim: 
from arquivo2 import minha_funcao
Lembre-se de que ambos os arquivos devem estar na mesma pasta ou você deve especificar o caminho correto para o arquivo que deseja importar.

--*--
Para chamar um script Python dentro do outro no Google Colab, você pode usar a função exec() para executar o conteúdo do segundo script a partir do primeiro script.

Por exemplo, se você tem dois scripts Python chamados "script1.py" e "script2.py" no mesmo diretório, você pode chamar "script2.py" de dentro de "script1.py" da seguinte forma:

Abra o arquivo "script1.py" no Google Colab e adicione o seguinte código: 
exec(open('script2.py').read())
Salve o arquivo "script1.py".

Execute o arquivo "script1.py" clicando no botão "Play" na célula que contém o código.

O código acima usará a função open() para abrir o arquivo "script2.py" e, em seguida, a função read() para ler o conteúdo do arquivo como uma string. O conteúdo do arquivo é então passado para a função exec(), que executa o conteúdo do arquivo como se fosse parte do arquivo "script1.py". Isso efetivamente chama "script2.py" de dentro de "script1.py".

Note que os dois scripts precisam estar no mesmo diretório para que a função open() possa encontrá-lo. Se o script que você deseja chamar estiver em um diretório diferente, você precisará especificar o caminho absoluto ou relativo para o arquivo em vez do nome do arquivo simples, como mostrado acima.
--*--
Se você está trabalhando com notebooks do Jupyter no Google Colab (com extensão .ipynb), você pode chamar um notebook a partir do outro usando a função run_notebook() do pacote nbparameterise.

Primeiro, instale o pacote nbparameterise se ele ainda não estiver instalado em seu ambiente de notebook, usando o seguinte comando: 
!pip install nbparameterise
Abra o notebook que você deseja chamar dentro do outro e adicione os parâmetros que você deseja usar no topo do notebook, seguindo o formato abaixo: 
# Parameters
param1 = 123
param2 = 'abc'

# Restante do código
...
Salve o notebook.

No notebook que você deseja usar para chamar o primeiro notebook, adicione o seguinte código: 
from nbparameterise import extract_parameters, parameter_values, replace_definitions
import nbformat
from nbconvert.preprocessors import ExecutePreprocessor

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

# Extrai os parâmetros do notebook
params = extract_parameters(nb)

# Define os valores dos parâmetros
param_values = parameter_values(params, param1=456, param2='def')

# Substitui as definições de parâmetros com valores
nb = replace_definitions(nb, param_values)

# Executa o notebook com os parâmetros definidos
ep = ExecutePreprocessor(timeout=600, kernel_name='python3')
ep.preprocess(nb, {'metadata': {'path': './'}})
Substitua "notebook1.ipynb" com o nome do seu notebook que você deseja chamar. Defina os valores que deseja usar para os parâmetros param1 e param2 de acordo com suas necessidades.

Salve o notebook e execute o código clicando no botão "Play" na célula que contém o código.

O código acima extrai os parâmetros do notebook que você deseja chamar e os define com valores personalizados. Em seguida, ele substitui as definições de parâmetros do notebook com os valores personalizados e executa o notebook com os parâmetros personalizados usando um objeto ExecutePreprocessor.

Note que, se você deseja que o notebook chamado retorne valores para o notebook de chamada, precisará modificar o notebook chamado para incluir a linha return com o valor desejado e modificar o código de chamada para capturar o valor retornado.

--*--
Se ambos os scripts estiverem em um único arquivo .ipynb, você pode simplesmente chamar as funções de um script a partir do outro. Aqui está um exemplo:

Suponha que você tenha duas células em um único notebook:

Célula 1 contém a definição da função func1: 
def func1():
    print("Esta é a função 1")
Célula 2 contém a definição da função func2, que chama a função func1: 
def func2():
    print("Esta é a função 2")
    func1()
Para chamar a função func2, basta executar a célula 2. A função func2 será definida e chamada automaticamente. A saída será: 
Esta é a função 2
Esta é a função 1
Se as funções estiverem em células diferentes em um único notebook, você pode executar as células na ordem apropriada para definir as funções antes de chamar uma função a partir da outra. Lembre-se de que as funções definidas em células anteriores estarão disponíveis para uso em células posteriores.