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 专题三 字符串的基础知识
Mar 19 Python
python如何实现内容写在图片上
Mar 23 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
python笔记之mean()函数实现求取均值的功能代码
Jul 05 Python
简单了解python的内存管理机制
Jul 08 Python
Python 3.8正式发布,来尝鲜这些新特性吧
Oct 15 Python
Python&&GDAL实现NDVI的计算方式
Jan 09 Python
使用Tensorflow将自己的数据分割成batch训练实例
Jan 20 Python
Python常用数据分析模块原理解析
Jul 20 Python
Python+SeaTable实现计算两个日期间的工作日天数
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
phpphp图片采集后按原路径保存图片示例
2014/02/18 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
2014/08/21 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
2019/07/03 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
【消息提示组件】,兼容IE6/7&&FF2
2007/09/04 Javascript
jQuery 使用手册(七)
2009/09/23 Javascript
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
2018/08/28 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
2020/11/12 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
python映射列表实例分析
2015/01/26 Python
python套接字流重定向实例汇总
2016/03/03 Python
uwsgi+nginx部署Django项目操作示例
2018/12/04 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
python数字类型math库原理解析
2020/03/02 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
Python 实现打印单词的菱形字符图案
2020/04/12 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
深入浅析HTML5中的SVG
2015/11/27 HTML / CSS
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
搬家公司的创业计划书
2014/01/01 职场文书
银行员工考核评语
2014/12/31 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript