Запустите несколько файлов .py в блокноте Jupyter.

По сути, я получаю несколько файлов python в том же каталоге моей основной программы jupyter, и внутри этой основной программы мне нужна ячейка, которая будет запускать все остальные файлы python.

*примечание: файлы py генерируются динамически

Я пытался использовать что-то вроде

%run *.py

Или что-то вроде:

While True: %run "script1.py"

Но мне нужно динамически установить имя скрипта

На самом деле есть несколько способов сделать это. И поэтому было бы неплохо упомянуть детали вашей системы и / или насколько она универсальна.

Wayne 11.01.2023 19:03
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а...
Библиотека для работы с мороженым
Библиотека для работы с мороженым
Лично я попрощался с операторами print() в python. Без шуток.
Эмиссия счетов-фактур с помощью Telegram - Python RPA (BotCity)
Эмиссия счетов-фактур с помощью Telegram - Python RPA (BotCity)
Привет, люди RPA, это снова я и я несу подарки! В очередном моем приключении о том, как создавать ботов для облегчения рутины. Вот, думаю, стоит...
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
Учебник по веб-скрапингу
Учебник по веб-скрапингу
Привет, ребята... В этот раз мы поговорим о веб-скрейпинге. Целью этого обсуждения будет узнать и понять, что такое веб-скрейпинг, а также узнать, как...
Тонкая настройка GPT-3 с помощью Anaconda
Тонкая настройка GPT-3 с помощью Anaconda
Зарегистрируйте аккаунт Open ai, а затем получите ключ API ниже.
0
1
94
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это запустит каждый файл сценария .py в текущем каталоге, в котором запущен блокнот, даже те файлы сценариев, которые последующие сценарии создают в том же каталоге:

import os
import fnmatch
import glob

executed_scripts = []
extension_to_match = ".py"

def execute_script(s):
    %run {s}

while set(executed_scripts) != set(glob.glob(f"*{extension_to_match}")):
    for file in os.listdir('.'):
        if fnmatch.fnmatch(file, '*'+extension_to_match):
            if file not in executed_scripts:
                execute_script(file)
                executed_scripts.append(file)

Я попытался сделать это универсальным, не полагаясь на какие-либо специальные пакеты, позволяющие обрабатывать подстановочные знаки оболочки.

Вы можете увидеть, как это продемонстрировано в действии внизу этого блокнота. Начальные ячейки в этой записной книжке настраивают ситуацию, создавая два сценария, каждый из которых порождает еще три сценария. Каждый скрипт запускается один раз.

Заголовок блокнота содержит инструкции о том, как вы можете перейти сюда и нажать launch binder, чтобы получить сеанс, обслуживаемый MyBinder.org, где этот блокнот будет работать. После запуска сеанса вы можете ввести !curl -OL https://gist.githubusercontent.com/fomightez/bcbeaa34f258e6ab959c842438077cb8/raw/4aa21f205c663688ef552acc38293d574c9667c4/for_so75075576.ipynb в ячейку записной книжки, чтобы получить записную книжку в сеансах, а затем открыть ее и активно запустить.

Другие вопросы по теме

Есть ли способ угодить проверке типов, кроме isinstance?
Перебрать файл excel и создать новый словарь для каждого нового элемента в столбце.
Установите условие внутри лямбда-функции в зависимости от того, является ли значение, захваченное с помощью регулярного выражения, None или ""
Как преобразовать код для записи данных в xlsx вместо csv, используя python без панд?
Обновление ключей словаря в одну строку
Правильный способ обработки гигантских строк с многопроцессорной обработкой
Создает новый словарь, состоящий из другого ключа словаря и двух переменных
Установите регулярное выражение с множественным выбором, чтобы попытки сопоставления всегда выполнялись слева направо, независимо от того, пытается ли другое предыдущее регулярное выражение захватить больше символов?
Ошибка из селена: AttributeError: объект «Сервис» не имеет атрибута «процесс»
Создать новый столбец типа списка на основе операции деления существующих столбцов в pandas