python引入文件夹中的文件

此文章为菜鸡学习记录,如有错误不足,还请大佬指正


文章目录

  • 一、引入同一目录下的py文件
  • 二、引入不同目录下的文件
  • 1、 调用子目录下的文件
  • 2、导入上级目录下的文件
  • 关于 _ _ init_ _.py

  • 在写python程序的时候,经常会用到引用其他的.py文件,如何使用import进行引入,下面将进行介绍:

    一、引入同一目录下的py文件

    如下图,main.py和deeplabv2.py在同一个文件夹内

    -|model
    	-|deeplabv2.py
    	-|main.py
    

    如果想在main.py文件内引入deeplabv2.py文件,代码如下:

    import deeplabv2
    

    二、引入不同目录下的文件

    1、 调用子目录下的文件

    目录如下:

    -|advent
    	-|model
    		-|deeplabv2.py
    		-|discriminator.py
    	-|test.py
    

    如果要在 test.py 中导入同级目录下的子目录文件 deeplabv2.py,就必须在 model 文件夹下建立空文件__init__.py 文件。新的目录结构如下:

    -|advent
    	-|model
    		-|deeplabv2.py
    		-|discriminator.py
    		-|__init__.py
    	-|test.py
    

    如果要在 test.py 中导入同级目录下的子目录文件 deeplabv2.py代码如下:

    from model.deeplabv2 import get_deeplab_v2
    

    2、导入上级目录下的文件

    目录如下:

    -|advent
    	-|model
    		-|deeplabv2.py
    		-|discriminator.py
    		-|__init__.py
    	-|script
    		-|test.py
    		-|train.py
    

    想要实现 test.py 调用deeplabv2 .py,做法是先跳到上级目录 advent 下面,然后在 model 目录下建一个空文件 init.py ,就可以像第二步调用子目录下的模块一样进行调用了。新的目录结构如下:

    -|advent
    	-|model
    		-|deeplabv2.py
    		-|discriminator.py
    		-|__init__.py
    	-|script
    		-|test.py
    		-|train.py
    

    代码如下:

    import sys
    sys.path.append("..")    # 在Linux下跳到上级目录下面(sys.path添加目录时注意是在windows还是在Linux下,windows下需要‘\\'否则会出错。)
    from model.deeplabv2 import get_deeplab_v2
    
    

    关于 _ _ init_ _.py

    在 python 模块的每一个包中,都有一个 __ init__.py 文件(这个文件定义了包的属性和方法),然后是一些模块文件和子目录,假如子目录中也有__init__.py ,那么它就是这个包的子包了。当你将一个包作为模块导入(比如从 xml 导入 dom )的时候,实际上导入了它的__init__.py 文件。

    一个包是一个带有特殊文件 __ init__.py 的目录,__ init__.py 文件定义了包的属性和方法。其实它可以什么也不定义,可以只是一个空文件,但是必须存在。如果 __ init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。


    来源:ZwaterZ

    物联沃分享整理
    物联沃-IOTWORD物联网 » python引入文件夹中的文件

    发表评论