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定时器使用示例分享
Feb 16 Python
Python中为feedparser设置超时时间避免堵塞
Sep 28 Python
Python面向对象编程中的类和对象学习教程
Mar 30 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
python得到单词模式的示例
Oct 15 Python
Python面向对象程序设计类的封装与继承用法示例
Apr 12 Python
Python-while 计算100以内奇数和的方法
Jun 11 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
Python turtle库绘制菱形的3种方式小结
Nov 23 Python
python实现引用其他路径包里面的模块
Mar 09 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
Apr 07 Python
python:删除离群值操作(每一行为一类数据)
Jun 08 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防止跨域提交表单
2013/11/01 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
2015/08/28 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
jQuery toggle()设置CSS样式
2009/11/05 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
js常用DOM方法详解
2017/02/04 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
2017/04/29 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
JS实现数组去重及数组内对象去重功能示例
2019/02/02 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
2019/09/28 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
2020/05/19 jQuery
vue-i18n实现中英文切换的方法
2020/07/06 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
Python遍历numpy数组的实例
2018/04/04 Python
对于Python深浅拷贝的理解
2019/07/29 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
在python shell中运行python文件的实现
2019/12/21 Python
python线性插值解析
2020/07/05 Python
优秀学生获奖感言
2014/02/15 职场文书
2014庆六一活动方案
2014/03/02 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
黑白记忆观后感
2015/06/18 职场文书
教务处教学工作总结
2015/08/10 职场文书
企业管理不到位检讨书
2019/06/27 职场文书
Oracle表空间与权限的深入讲解
2021/11/17 Oracle