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 相关文章推荐
总结网络IO模型与select模型的Python实例讲解
Jun 27 Python
Python字符串拼接的几种方法整理
Aug 02 Python
python实现类之间的方法互相调用
Apr 29 Python
Python爬取个人微信朋友信息操作示例
Aug 03 Python
对Python random模块打乱数组顺序的实例讲解
Nov 08 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
python中hasattr()、getattr()、setattr()函数的使用
Aug 16 Python
Python 实用技巧之利用Shell通配符做字符串匹配
Aug 23 Python
python实现简易学生信息管理系统
Apr 05 Python
Matplotlib.pyplot 三维绘图的实现示例
Jul 28 Python
Python开发入门——迭代的基本使用
Sep 03 Python
利用python 下载bilibili视频
Nov 13 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下MYSQL limit的优化
2008/01/10 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
Python字符串处理实现单词反转
2017/06/14 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
opencv3/C++ 平面对象识别&透视变换方式
2019/12/11 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
Python在字符串中处理html和xml的方法
2020/07/31 Python
HTML+CSS+JavaScript实现图片3D展览的示例代码
2020/10/12 HTML / CSS
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
高一政治教学反思
2014/01/28 职场文书
幼儿园亲子活动方案
2014/01/29 职场文书
房屋买卖协议书范本
2014/04/10 职场文书
食品采购员岗位职责
2014/04/14 职场文书
协议书范本
2014/04/23 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
处罚决定书范文
2015/06/24 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
2019年大学毕业生个人自我鉴定范文大全
2019/03/21 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
Pandas实现批量拆分与合并Excel的示例代码
2022/05/30 Python