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 相关文章推荐
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 Python
Python实现获取网站PR及百度权重
Jan 21 Python
requests和lxml实现爬虫的方法
Jun 11 Python
Django在win10下的安装并创建工程
Nov 20 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
pandas去除重复列的实现方法
Jan 29 Python
python游戏开发之视频转彩色字符动画
Apr 26 Python
浅析Python3中的对象垃圾收集机制
Jun 06 Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 Python
Python字节单位转换实例
Dec 05 Python
使用PyTorch训练一个图像分类器实例
Jan 08 Python
Python小白不正确的使用类变量实例
May 29 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
第十三节 对象串行化 [13]
2006/10/09 PHP
Zend Framework入门教程之Zend_Config组件用法详解
2016/12/09 PHP
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
vuex 使用文档小结篇
2018/01/11 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
[05:24]TI9采访——教练
2019/08/24 DOTA
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
Python使用pymongo模块操作MongoDB的方法示例
2018/07/20 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
CSS3教程:新增加的结构伪类
2009/04/02 HTML / CSS
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
2012/12/13 HTML / CSS
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
Yahoo-PHP面试题2
2014/12/06 面试题
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
医德医魂心得体会
2014/09/11 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
老乡会致辞
2015/07/28 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
python 爬取华为应用市场评论
2021/05/29 Python