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 21 Python
python 捕获 shell/bash 脚本的输出结果实例
Jan 04 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 Python
django中media媒体路径设置的步骤
Nov 15 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
Python中的With语句的使用及原理
Jul 29 Python
Python爬虫获取豆瓣电影并写入excel
Jul 31 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
Nov 25 Python
教你如何用python开发一款数字推盘小游戏
Apr 14 Python
python flappy bird小游戏分步实现流程
Feb 15 Python
Python使用mitmproxy工具监控手机 下载手机小视频
Apr 18 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
短波的认识
2021/03/01 无线电
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
php通过会话控制实现身份验证实例
2016/10/18 PHP
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
js触发select onchange事件的小技巧
2014/08/05 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
通过构造函数实例化对象的方法
2017/06/28 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
requireJS模块化实现返回顶部功能的方法详解
2017/10/16 Javascript
vue使用keep-alive实现数据缓存不刷新
2017/10/21 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
Python中特殊函数集锦
2015/07/27 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
python对于requests的封装方法详解
2019/01/03 Python
python爬虫之自制英汉字典
2019/06/24 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
英国森林假期:Forest Holidays
2021/01/01 全球购物
ddl,dml和dcl的含义
2016/05/08 面试题
会计实习生自我鉴定
2013/12/12 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
家长对孩子的寄语
2015/02/26 职场文书
运动会广播稿200字
2015/08/19 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript
 python中的元类metaclass详情
2022/05/30 Python