Python中在脚本中引用其他文件函数的实现方法


Posted in Python onJune 23, 2016

在导入文件的时候,Python只搜索当前脚本所在的目录,加载(entry-point)入口脚本运行目录和sys.path中包含的路径例如包的安装地址。所以如果要在当前脚本引用其他文件,除了将文件放在和脚本同一目录下,还有以下几种方法,

1. 将文件所在位置添加到sys.path中

import sys
sys.path.insert(0, '/path/to/application/app/folder') # or sys.path.append('/path/to/application/app/folder')

import file

2. 在文件目录下新建__init__.py文件然后调用文件

from application.app.folder.file import func_name

init.py文件

a).init.py文件的作用

该文件的主要作用使初始化Python包。如果目录下面包含了该文件,Python解释器就会将该目录当做一个包,下一步就可以使用import语句在别的.py脚本中引用该目录下的文件。一个标准Python模块的结构如下所示:

package/
  __init__.py
  file.py
  file2.py
  subpackage/
    __init__.py
    submodule1.py
    submodule2.py

b). __init__文件可以为空但可以用来建立对包的需求。一般来说会在该文件中写那些类,函数等需要被导入到包水平,从而可以被方便的引用。比如:如果file.py文件中有一个File类,在init.py文件中啥都没写时引用File类需要这样操作:

from package.file import File

如果在__init__.py文件中将file导入包,那就在包水平可以直接引用File类:

# in your __init__.py
from file import File

# in your script
from package import File

此外,还需要注意的一点是__init__.py文件中的all变量。

如果解释器在__init__.py文件中观察到了__all__变量,那么在运行from package import *时就只会引入__all__变量中列出的那些模块。

例如:如果想在上述结构的只引入submodule1模块,那么可以在subpackage/__init__.py文件中定义__all__ = ['submodule1'],当引用subpackage时from subpackage import *就只引入了submodule1模块。

3. 将文件所在目录添加到python的环境变量

export PYTHONPATH=$HOME/pathToYourScripts/:#PYTHONPATH

以上就是小编为大家带来的Python中在脚本中引用其他文件函数的实现方法全部内容了,希望大家多多支持三水点靠木~

Python 相关文章推荐
Python中生成器和yield语句的用法详解
Apr 17 Python
基于Python和Scikit-Learn的机器学习探索
Oct 16 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
Dec 12 Python
Python中xrange与yield的用法实例分析
Dec 26 Python
python实现超市扫码仪计费
May 30 Python
Python实现聊天机器人的示例代码
Jul 09 Python
python/sympy求解矩阵方程的方法
Nov 08 Python
django 配置阿里云OSS存储media文件的例子
Aug 20 Python
Python 调用 Windows API COM 新法
Aug 22 Python
Python爬取网页信息的示例
Sep 24 Python
Django haystack实现全文搜索代码示例
Nov 28 Python
pygame面向对象的飞行小鸟实现(Flappy bird)
Apr 01 Python
python中的lambda表达式用法详解
Jun 22 #Python
深入浅析python中的多进程、多线程、协程
Jun 22 #Python
Python按行读取文件的简单实现方法
Jun 22 #Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 #Python
详解Python中的from..import绝对导入语句
Jun 21 #Python
Java多线程编程中ThreadLocal类的用法及深入
Jun 21 #Python
深入解析Python中的__builtins__内建对象
Jun 21 #Python
You might like
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
PHP开发过程中常用函数收藏
2009/12/14 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
基于jQuery的倒计时实现代码
2012/05/30 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
使用JS画图之点、线、面
2015/01/12 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
使用CoffeeScrip优美方式编写javascript代码
2015/10/28 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
Vue3为什么这么快
2020/09/23 Javascript
Python中logging模块的用法实例
2014/09/29 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
Flask模板引擎之Jinja2语法介绍
2019/06/26 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
Python partial函数原理及用法解析
2019/12/11 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
2020/07/03 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
岗位职责范本
2013/11/23 职场文书
应届大学生自荐信
2013/12/05 职场文书
大学生的网络创业计划书
2013/12/26 职场文书
活动邀请函范文
2014/01/19 职场文书
收银出纳员岗位职责
2014/02/23 职场文书
2014教师党员个人自我评议
2014/09/20 职场文书
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL