美文网首页pythonPython
Python导入上一级/下一级/任一级目录下的.py文件问题

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

作者: 西北小生_ | 来源:发表于2020-08-05 22:13 被阅读0次

有如下目录:

-python
----file1
---------file1_1
------------------pfile1_1.py
---------pfile1.py
----file2
---------pfile2.py
----pfile.py
----data.py

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

1.导入下一级/多级目录

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

# 当前路径:/home/puxitong/python/

# 导入同级目录下的data.py
import data

# 导入下一级目录file1下的pfile1.py
from file1 import pfile1
pfile1.fun1()

# 导入下一级目录file2下的pfile2.py
from file2 import pfile2
pfile2.fun2()

# 导入下一级目录file2下的pfile1.py中的函数fun1()
from file1.pfile1 import fun1
fun1()

# 导入下两级目录file1/file1_1/下的pfile1_1.py
from file1.file1_1 import pfile1_1
pfile1_1.fun1_1()
可以看出,导入同级目录下的文件时,格式为:

import 文件名

导入下一级目录下的文件时,格式为:

from 文件夹名 import 文件名

导入下二级目录下的文件时,格式为:

from 下一级文件夹名.下二级文件夹名 import 文件名

导入下多级目录下的文件时以此类推,即:

from 文件夹1.文件夹2.文件夹3. .. .文件夹n import 文件名

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

我们也可以只导入需要的函数或类,格式为:

from 文件夹名.文件名 import 函数1,函数2,类1,…

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

2.导入上一级/任一级目录

-python
----file1
---------file1_1
------------------pfile1_1.py
---------pfile1.py
----file2
---------pfile2.py
----pfile.py
----data.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 按照下一级路径导入方式进行导入:

# 当前路径:/home/puxitong/python/file1/

# 导入pfile.py前先将其路径添加到系统路径中
import sys
sys.path.append('/home/puxitong/python/')

# 导入pfile.py
import pfile

# 导入pfile2.py
from file1 import pfile2

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

# 当前路径:/home/puxitong/python/file1/file1_1/

# 导入pfile.py前先将其路径添加到系统路径中
import sys
sys.path.append('/home/puxitong/python/')

# 导入pfile.py
import pfile

# 导入pfile1.py
from file2 import pfile1

# 导入pfile2.py
from file2 import pfile2
自然地,导入任意.py文件时,只需要在导入该文件前用

sys.path.append('该文件所在的绝对路径')

将该文件所在的绝对路径添加到系统路径中,再进行同级目录或下级目录导入方式导入即可.

相关文章

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

    有如下目录: 即python文件夹下有file1, file2, pfile.py, data.py,文件夹fil...

  • windows命令行常用命令

    查看当前目录下的文件和文件夹: 查看当前目录下的文件树 磁盘切换 打开当前目录下的文件夹 返回上一级目录 删除当前...

  • 目录 ./ ../ ../../

    ./ 表示当前文件所在目录之下的目录。 ../ 表示当前文件所在目录向上一级目录下的目录。 ../....

  • 工程文件的引入

    如上图,我建立的工程名称是“tianchiyuebao”,当我在某个py文件中import的时候要从工程的下一级目...

  • node.js

    cmd命令: ./ 当前目录 ../ 上一级 dir 查看当前目录 ls 查看当前目录下文件 win...

  • Python2.7 模块和包管理学习小结 05

    根据例子逐个分析 导入下一层目录中的文件 补充__all__变量作用我们可以在某级目录的__init__.py里设...

  • tensor board

    .py文件已经产生了一个文件夹log,里面有文件 打开终端,定位到log的上一级菜单 运行文件夹内部的文件 返回一...

  • python import,reload,__import__简

    在python中,import用来导入一个python标准模块,其中包括.py文件,带有init.py文件的目录。...

  • nodeJS 常用指令

    常用指令 dir 列出当前目录下面的所有文件(文件夹+文件) cd.. 返回上一级目录 cd\ 直接放回到盘符的根...

  • 关于python导包的理解

    在python中,每个模块的包中,都有一个__init__.py的文件,有了这个文件,我们才能导入这个目录下的mo...

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/gbflrktx.html