如何在Python中从不同的文件夹导入文件



这是我的项目结构:

  • Elvvo
    • 功能
      • lights.py
    • main.py

Elvvo文件夹的目录是/home/pi/Desktop/Elvvo,因为我在树莓派上工作。

我有几个在main.py中定义的函数。我想从lights.py中调用这些函数。我该怎么做呢?提前感谢!

technical -1

您可以使用sys.path.insert()内置方法将main.py的路径插入到系统路径变量的位置1。。这确保了它以最高优先级加载,并避免了任何命名冲突(如果存在)。

请看看我是如何解决这个问题的:

我的文件夹结构如下:

import_test
├── functions
│   └── function.py
├── main.py

我main.py

def printFromMainA():
print("FromMainA")

def printFromMainB():
print("FromMainB")

我的功能/function.py

import sys
sys.path.insert(1, "Absolute path to import_test/")
from main import *
def printFunction():
print("FromFunction")
printFromMainA()
printFromMainB()

printFunction()

最后当我从import_test文件夹

python functions/function.py 

得到以下输出:

FromFunctionA
FromMainA
FromMainB

技巧2

您也可以使用sys.path.append()方法,将main.py的路径附加到系统的路径变量。这将把当前路径添加到系统路径列表的最后一个位置。

在本例中,您只需要对function.py做如下操作:

import sys
sys.path.append("Absolute path to import_test/")
from main import *
def printFunction():
print("FromFunction")
printFromMainA()
printFromMainB()

printFunction()

这也应该给你想要的输出。

相关内容

  • 没有找到相关文章

最新更新