Python 跨.py文件调用自定义函数说明


Posted in Python onJune 01, 2020

0 前言

os.chdir() :用于改变当前python工作的目录到指定的路径

sys.path:是python搜索模块的一个路径集,为list,自定义的包可以把存放路径加进去,之后直接调用包名就行了。

1 同一文件夹

一般当前的工作路径是在搜索路径里面,所以不用sys.path.append,如果调用包的时候报错,先使用sys.path查看当前路径在不在list里,不在list里加进去才能直接调用自定义包。

一个文件夹内有两个 .py 文件:

exe101.py
FileWriteAbout.py

我们想在exe101.py文件内调用FileWriteAbout.py文件中的 任意 一个自定义函数。

Python 跨.py文件调用自定义函数说明

假如调用FileWriteAbout.py文件中的函数writeList():

Python 跨.py文件调用自定义函数说明

直接在exe101.py中输入:

import FileWriteAbout # 导入另一个文件
FileWriteAbout.writeList() #调用其中的函数名

#或者下面这种,只是调用时省略py文件名容易导致不同包内的函数名字冲突
from FileWriteAbout import *
writeList() #直接写函数名

ps:

如果只涉及被调用py文件中的一个具体函数

就可以将调入形式写成:

from FileWriteAbout import writeList
writeList()

2 不同文件夹下

两个py文件不再一个目录的情况下

2.1 用append将待调用文件路径加入搜索list

import sys
sys.path.append(r"D:\MathElectric\python\exercises") 
 # 待引用的py文件路径加到了搜索列表里

import FileWriteAbout # py 文件名
FileWriteAbout.writeList() # 具体函数

2.2 使用imp包

导入imp包:

import imp

AA = imp.load_source(name,pathname[,file])

将源py文件pathname导入到名字为name的模块中,name可以是自己定义。

例如:

import imp # 导入
CC = imp.load_source('MM',r'D:\MathElectric\python\exercises\FileWriteAbout.py')

使用时:

方法(1):直接使用

CC.writeList()

方法(2):导入别名使用

import MM
MM.writeList()

3 spyder使用相对路径读取文件

绝对路径读取文件没有问题。

data = pd.read_excel(r"D:/project/UCIpowerPre/CCPP/Folds5x2_pp.xlsx")

使用spyder写代码的时候想使用相对路径直接读数据,

data = pd.read_excel(r"CCPP/Folds5x2_pp.xlsx")

发现报错。

其实就是代码编辑的工作路径和数据路径不对应。

我们可以把工作路径切换到待读取文件所在的位置。

或者在spyder右上角把当前的工作路径改一下。

import os
os.chdir(r"D:/project/UCIpowerPre")

重点区分这几个路径的区别:

当前的工作路径

py文件包的搜索路径

数据文件所在路径

补充知识:python只引入模块并不能直接调用该模块的函数

如下图:

Python 跨.py文件调用自定义函数说明

这里只引入了recognizer模块,没有直接引入其函数,会报错name 'XXX' is not defined

若想频繁使用某个函数,可以将它赋值给一个本地变量

如:

predict = recognizer.predict
clean_captcha = recognizer.clean_captcha
get_captcha = recognizer.get_captcha

Python 跨.py文件调用自定义函数说明

以上这篇Python 跨.py文件调用自定义函数说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python模块学习 datetime介绍
Aug 27 Python
Python模拟百度登录实例详解
Jan 20 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
python语言元素知识点详解
May 15 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
python实现图片二值化及灰度处理方式
Dec 07 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
使用TFRecord存取多个数据案例
Feb 17 Python
Python request post上传文件常见要点
Nov 20 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
python中altair可视化库实例用法
Jan 26 Python
Python tkinter之Bind(绑定事件)的使用示例
Feb 05 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 #Python
Python如何在main中调用函数内的函数方式
Jun 01 #Python
Python爬取YY评级分数并保存数据实现过程解析
Jun 01 #Python
基于Python绘制个人足迹地图
Jun 01 #Python
python 写函数在一定条件下需要调用自身时的写法说明
Jun 01 #Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 #Python
Python如何在循环内使用list.remove()
Jun 01 #Python
You might like
Search Engine Friendly的URL设计
2006/10/09 PHP
PHP base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
2012/12/28 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
基于原生js淡入淡出函数封装(兼容IE)
2016/10/20 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
解决拦截器对ajax请求的拦截实例详解
2016/12/21 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
使用Mixin设计模式进行Python编程的方法讲解
2016/06/21 Python
Python 中pandas.read_excel详细介绍
2017/06/23 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
2014年预备党员学习两会心得体会
2014/03/17 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
作文评语怎么写
2014/12/25 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python