Как загрузить файлы Python из ../ - PullRequest
0 голосов
/ 10 мая 2019

Мне было интересно, как мне загрузить модуль python из файла из каталога до того, как будет запущен скрипт.

Пример:

../
├── api
│   ├── Group.py
│   ├── Trade.py
│   └── User.py
├── client.py

Как бы Group.pyimport client.py?

Спасибо, Ира.

Ответы [ 2 ]

1 голос
/ 11 мая 2019

для другого каталога вы можете использовать

импортировать модуль с использованием синтаксиса

от foldername.filename import *

from api.Group import *

если файлы находятся в одной папке, используйте напрямую

использовать импорт с именем файла

import Group
0 голосов
/ 10 мая 2019

Когда импортируется модуль с именем spam, интерпретатор сначала ищет встроенный модуль с таким именем.Если файл не найден, он ищет файл с именем spam.py в списке каталогов, заданных переменной sys.path

>>> import sys
>>> sys.path
['', 'C:\\Python36\\python36.zip', 'C:\\Python36\\DLLs', 'C:\\Python36\\lib', 'C:\\Python36', 'C:\\Python36\\lib\\site-packages']

Если мы увидим, что первое значение '' относится к текущемупапка, так почему мы можем импортировать файлы с текущего пути.Для импорта из родительской папки мы добавляем родительскую папку в переменную sys.path

>>> import os
>>> sys.path.append(os.path.abspath("./.."))
>>> sys.path
['', 'C:\\Python36\\python36.zip', 'C:\\Python36\\DLLs', 'C:\\Python36\\lib', 'C:\\Python36', 'C:\\Python36\\lib\\site-packages', 'D:\\Python Programs\\Practice_Imports\\stack']

Теперь sys.path содержит родительскую папку, поэтому мы можем импортировать client.py из Group.py

>>> import client

Проверьте эту ссылку , чтобы получить четкие сведения об импорте.

...