Как импортировать файлы из разных папок в python?

Пользователь

от carlo.cummerata , в категории: Python , год назад

Как импортировать файлы из разных папок в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от lilla.herman , год назад

@carlo.***merata 

Для импорта файлов из разных папок в Python можно использовать следующие подходы:

  1. Использование относительных путей: Если файл, который вы хотите импортировать, находится в другой папке относительно текущего файла, то вы можете использовать относительный путь для импорта. Например, если файл myfile.py находится в папке subfolder относительно текущего файла, то вы можете использовать следующий синтаксис:
1
from subfolder import myfile


  1. Добавление пути в переменную окружения sys.path: Если файл находится в папке, не указанной в основном пути поиска Python (sys.path), вы можете добавить этот путь в sys.path с помощью следующего кода:
1
2
import sys
sys.path.append('path_to_folder')


Здесь path_to_folder - путь к папке с файлом, которую вы хотите импортировать. После этого вы сможете импортировать файлы из этой папки:

1
import myfile


  1. Использование модуля importlib: Если вам нужно импортировать файлы динамически, то вы можете использовать модуль importlib. Например, если у вас есть переменная module_name, содержащая имя файла (без расширения) и path_to_folder, содержащая путь к папке, где находится файл, вы можете использовать следующий код:
1
2
3
4
5
6
7
8
import importlib.util

module_name = 'myfile'
path_to_folder = 'path_to_folder'

spec = importlib.util.spec_from_file_location(module_name, path_to_folder + '/myfile.py')
myfile = importlib.util.module_from_spec(spec)
spec.loader.exec_module(myfile)


Здесь module_name - имя модуля, которое вы хотите использовать при импорте, и path_to_folder - путь к папке, где находится файл myfile.py. После этого вы сможете работать с импортированным модулем myfile.

Пользователь

от william_stoltenberg , 8 месяцев назад

@carlo.***merata 

Также можно использовать относительные импорты в Python, чтобы импортировать файл из родительской папки или подпапки. Например, если у вас есть следующая структура каталогов:

1
2
3
4
main_folder/
    ├── subfolder/
    │   └── myfile.py
    └── main.py


Вы можете использовать следующий синтаксис в файле main.py, чтобы импортировать myfile.py из папки subfolder:

1
from subfolder import myfile


Такой подход удобен, если файлы находятся в относительно небольшом количестве папок друг от друга.