【Python】python引入外部文件
来源:互联网 发布:windows 空间音效 编辑:程序博客网 时间:2024/06/16 02:00
1. 如果引入文件是在子目录,如:
folder
------tobeinvodedA.py
------tobeinvodedB.py
------tobeinvodedC.py
toinvoke.py
这种情况,在folder 下新建一个__init__.py 的空文件,此时的folder不再是一个普通的文件夹,而是一个包 package。现在像这样
folder #文件夹 现在的性质为一个python包package
------__init__.py
------tobeinvoded.py
------tobeinvodedA.py
------tobeinvodedB.py
------tobeinvodedC.py
toinvoke.py
这样在toinvoke.py 中引入
import folder.toveinvoked 或 from folder.tobeinvoked import *
即可
2. 如果是外部目录,如folderB中的模块要调用folderA中的模块,方法同上
folderA
------tobeinvoded.py
------tobeinvodedA.py
------tobeinvodedB.py
------tobeinvodedC.py
folderB
--------toinvoke.py
这样在toinvoke.py 中引入
import folder.toveinvoked 或 from folder.tobeinvoked import *
即可
3. Python的包搜索路径
Python会在以下路径中搜索它想要寻找的模块:
(1) 程序所在的文件夹
(2) 标准库的安装路径
(3) 操作系统环境变量PYTHONPATH所包含的路径
将自定义库的路径添加到Python的库路径中去,有如下两种方法:
(1) 动态的添加库路径。在程序运行过程中修改sys.path的值,添加自己的库路径
import sys
sys.path.append(r'your_path')
sys模块是使用c语言编写的,因此字符串支持 '\n', '\r', '\t'等来表示特殊字符。所以最好写成: sys.path.append('c:\\xxx\\b.py') 避免转义。
(2) 在Python安装目录下的\Lib\site-packages文件夹中建立一个.pth文件,内容为自己写的库路径。示例如下
E:\\work\\Python\\http
参考
4. import上一级目录的模块
python中,import module会去sys.path搜索,sys.path是个列表,并且我们可以动态修改。
要import某个目录的module,我们sys.path.insert(0,somedir)来加入搜索路径,就可以import了。
既然这样,要import上一级目录的module,可以sys.path.insert(0,parentdir)。
不过这种写绝对路径的方式,如果文件放到其它地方,就不行了。
所以用动态方法来获取上一级目录。
import os,sys parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0,parentdir)
为什么用sys.path.insert(0,parentdir) 而不是用sys.path.append(parentdir)呢。
因为是遍历搜索路径的,所以如果在其它路径里也有个同名的module,会import错。用sys.path.insert(0,parentdir)可以确保先搜索这个路径。
- python引入外部文件
- python引入外部文件
- 【Python】python引入外部文件
- python 引入 导入 自定义模块, python 引入 导入 外部文件
- Python 引入外部自定义模块
- python引入导入自定义模块和外部文件
- python引入导入自定义模块和外部文件
- python引入导入自定义模块和外部文件
- 【极客学院】-python学习笔记-Python快速入门(面向对象-引入外部文件-Web2Py创建网站)
- Python 导入外部类文件
- Python如何打开外部文件?
- Python 导入外部类文件
- python引入
- php引入外部文件
- nginx 引入外部文件
- HTML外部文件引入
- python从文件外部调用参数
- python写数据到外部文件
- 矩阵链相乘
- Jfinal HttpKit.post(url,data)源码解析
- Winform中报表RDLC的设计与实现
- 6年前的防sql注入服务器安全配置文章,依然很有用
- [操作系统] 页面置换算法(一)
- 【Python】python引入外部文件
- HDU1251 统计难题(Trie树)
- 工作一周总结
- 算法导论:c++计数排序
- MongoDB数组更新操作$addToSet和$each修饰符
- java任务--GradeSort
- 29 SpringMVC 上传文件未生成临时文件
- Android:检测网络状态&监听网络变化探究
- build-blocker-plugin