Как выполнить скрипты находящиеся в подпапках из файла в родительской папке программы
Структура программы:
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()