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中使用base64模块处理字符编码的教程
Apr 28 Python
Python读写文件方法总结
Jun 09 Python
pycharm远程调试openstack的图文教程
Nov 21 Python
python基础之包的导入和__init__.py的介绍
Jan 08 Python
Python求出0~100以内的所有素数
Jan 23 Python
python实现微信发送邮件关闭电脑功能
Feb 22 Python
15行Python代码带你轻松理解令牌桶算法
Mar 21 Python
python验证码识别教程之滑动验证码
Jun 04 Python
springboot配置文件抽离 git管理统 配置中心详解
Sep 02 Python
python将时分秒转换成秒的实例
Dec 07 Python
Python日期格式和字符串格式相互转换的方法
Feb 18 Python
Python抓包程序mitmproxy安装和使用过程图解
Mar 02 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
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
Nodejs多站点切换Htpps协议详解及简单实例
2017/02/23 NodeJs
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
python通过函数属性实现全局变量的方法
2015/05/16 Python
python距离测量的方法
2018/03/06 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
Python实现的爬虫刷回复功能示例
2018/06/07 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
python打印异常信息的两种实现方式
2019/12/24 Python
python批量修改文件名的示例
2020/09/27 Python
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
路德维希•贝克(LUDWIG BECK)中文官网:德国大型美妆百货
2020/09/19 全球购物
求职者简历中的自我评价
2013/10/20 职场文书
物业管理专业求职信
2014/06/11 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
公司宣传语大全
2015/07/13 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android