Как выполнить скрипты находящиеся в подпапках из файла в родительской папке программы

Структура программы:

parentfolder
    сontrol_panel.py
    Folder_1
        sub_script_1.py
    Folder_2
        sub_script_2.py

sub_script_1.py и sub_script_2.py создают внутри своих папок подпапки 1.1folder и 1.2folder соответственно. Как теперь запустить sub_script_1.py и sub_script_2.py из файла сontrol_panel.py чтобы подпапки 1.1folder и 1.2folder создались внутри Folder_1 и Folder_2 а не в родительской.

# sub_script_1.py для примера, sub_script_2.py имеет аналогичный код только вместо '1.1 folder' имеет '1.2 folder'
import os

def create_folders():
        if not os.path.exists('1.1 folder'):
                os.makedirs('1.1 folder')

create_folders() 

Пробовал через import и subprocess, но подпапки создаются в родительской папке.

# Вариант с subprocess который создает подпапки в родительской папке
import subprocess


def main():

   python_path = 'C:\\Users\\Home\\AppData\\Local\\Programs\\Python\\Python38-32\\python.exe'

   '''Запуск sub_script_1'''
   sub_script_1 = 'Folder_1\\sub_script_1.py'
   start_script1 = [python_path, sub_script_1]
   subprocess.call(start_script1)

   '''Запуск sub_script_2'''
   sub_script_2 = 'Folder_2\\sub_script_2.py'
   start_script2 = [python_path, sub_script_2]
   subprocess.call(start_script2)


if __name__ == '__main__':
   main()

Ответы (1 шт):

Автор решения: alex

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

# sub_script_1.py для примера, sub_script_2.py имеет аналогичный код только вместо '1.1 folder' имеет '1.2 folder'
import os

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

def create_folders():
        sub_dir_path = os.path.join(BASE_DIR, '1.1 folder')
        if not os.path.exists(sub_dir_path):
                os.makedirs(sub_dir_path)

create_folders() 
→ Ссылка