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函数编程的一些特性
Apr 13 Python
使用apidocJs快速生成在线文档的实例讲解
Feb 07 Python
解决安装pycharm后不能执行python脚本的问题
Jan 19 Python
python selenium执行所有测试用例并生成报告的方法
Feb 13 Python
python如何实时获取tcpdump输出
Sep 16 Python
浅析Python 字符编码与文件处理
Sep 24 Python
提高python代码运行效率的一些建议
Sep 29 Python
Python实现哲学家就餐问题实例代码
Nov 09 Python
搭建pypi私有仓库实现过程详解
Nov 25 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
Dec 08 Python
Python实现列表拼接和去重的三种方式
Jul 02 Python
Python制作一个随机抽奖小工具的实现
Jul 07 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
PHP 第二节 数据类型之数值型
2012/04/28 PHP
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
PHP ajax 异步执行不等待执行结果的处理方法
2015/05/27 PHP
php使用CutyCapt实现网页截图保存的方法
2016/10/03 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
js输出列表实现代码
2010/09/12 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
js中function()使用方法
2013/12/24 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
2014/06/24 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
2018/04/17 jQuery
Vue实现6位数密码效果
2018/08/18 Javascript
微信小程序自定义select下拉选项框组件的实现代码
2018/08/28 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
[04:22]DSPL第二期精彩集锦:残血反杀!
2014/12/10 DOTA
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
Python 中的with关键字使用详解
2016/09/11 Python
pandas 数据归一化以及行删除例程的方法
2018/11/10 Python
python日志模块logbook使用方法
2019/09/19 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
Java如何基于wsimport调用wcf接口
2020/06/17 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
行政经理的岗位职责
2013/11/23 职场文书
公司出纳岗位职责
2013/12/07 职场文书
农业项目合作意向书
2015/05/08 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书