Python导入上一级下一级任一级目录下的.py文件问题

Python导入上一级下一级任一级目录下的.py文件问题,第1张

有如下目录:

即python文件夹下有file1, file2, pfile.py, data.py,文件夹file1下又有file1_1, pfile1.py, 文件夹file2下有pfile2.py,文件夹file1_1下又有pfile1_1.py。

在文件pfile.py中导入pfile1.py, pfile2.py或 pfile1_1.py,并使用其中的函数(假设函数名分别文fun1(), fun2(), fun1_1()):

需要注意的是,这种导入方式下,如果要用导入的文件中的函数或者类,需要在其前面加上文件名,即 "文件名.函数名" 的形式

有些教程里面说,需要在下一级目录下新建一个空的python文件命名为 __init__.py,但我在运行时发现不建一个文件也会导入成功。

如果要在pfile1.py中调用渗亏pfile.py 和 pfile2.py,因为当前路径是 '/home/puxitong/python/file1/' ,而 pfile.py和pfile1.py在路径'/home/puxitong/python/' 及其子路径下,这里的思返腊路是将上一级目录 '/home/puxitong/python/' 添加在系统路径中,可以直接访问pfile.py,然后将pfile2.py 按照下一级路径导入方式进行导入:

如果要在pfile1_1.py中导入pfile.py, pfile1.py, pfile2.py呢? 原理是一样的,即将漏喊滑文件pfile.py所在路径添加到系统路径中,可直接导入pfile.py, 再按照下级文件导入方式导入pfile1.py和pfile2.py:

(1)主程序main.py与模块程序mod1.py在同一目录下。

--src

 团段简 |--mod1.py

  |--main.py

直接在main.py中导入模块mod1.py,即 import mod1 或 from mod1 import *

(2)主程序main.py所在目录是模块程序mod.py所在目录的父目录。

--src

  |--mod1.py

  |--main.py

  ---mod2

     |--mod2.py

先需要在mod2文件夹中建立空文件__init__.py

然后在main.py中导入模块塌裤mod2.py,即 import mod2.mod2 或 from mod2.mod2 import *

(3)主程序main.py导入上层目录中的模块或其他目录(平级)下的模块。

--src

  |--mod1.py

  ---mod2

     |--mod2.py

  ---sub

     |--main.py

先需要在mod2文件夹中建立空文件__init__.py,而src文件夹下不需要建立

然燃漏后进入主程序main.py所在的路径,执行python main.py

在main.py中导入模块mod2.py,即 import mod2.mod2 或 from mod2.mod2 import *

执行前在main.py中加入:

import sys

sys.path.append("..")

import mod1

import mod2.mod2


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12130031.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存