Python如何import文件夹下的文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python如何import文件夹下的文件相关的知识,希望对你有一定的参考价值。
参考技术A 要包含目录里的文件,php中只需要给对路径就OK。Python中则不同,下面来看看这个例子。目录结构:a.py 要 import dir目录下的 b.py 文件。a.py代码如下:
# coding=utf-8
import dir 目录下的 b.py 文件
import dir.b
print dir.b.name
执行 a.py 报错
提示找不到这个模块的名字 dir.b 。通过查找官方文档,发现要包含目录下的文件时需要在目录下声明一个__init__.py文件,即使这个文件是空的也可以。当然这个文件也可以初始一些数据。
于是在 dir 下新建 __init__.py文件,目录结构如下:本回答被提问者采纳
python文件结构与import用法
首先上一张总结图:
在pycharm中,一般不会将当前文件目录自动加入自己的sourse_path。如果遇到无法import同级目录下的其他模块,
右键make_directory as-->Sources Root将当前工作的文件夹加入source_path就可以了。
但是那个总结图非常的不协调,下面来详细说明:
(1)同一个包中不同模块互相引用
在确认把此文件夹路径加入sourcepath的前提下:【from 模块名 import 类名】
(2)同一个文件夹中的不同包互相引用
有三种写法:
--可以直接引用对方的模块:【from 模块名 import 类名】
--如果在各自包的__init__.py文件夹中什么也没写的话,其中包名前面的两个点表示上一级目录下的文件
--在包的__init__.py中先写上自己的引用
然后就可以直接用包名引用类名:
(3)不同文件夹中的不同包的互相引用
只不过是多写一个目录的事情,当然如果在wx_video中的__init___.py文件中已经引用过自己的类,难么就可以直接通过包名import类
总结:
1、当你导入一个包的时候,实际上导入的是这个包的 __init__.py文件,所以,如果你在init里面写入了其他的import功能,就等于是在初始化的时候帮忙导入了其他东西。
2、每一个包目录下面都会有一个__init___.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py
可以是空文件,也可以有Python代码,因为__init__.py
本身就是一个模块。
以上是关于Python如何import文件夹下的文件的主要内容,如果未能解决你的问题,请参考以下文章