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 相关文章推荐
pyside写ui界面入门示例
Jan 22 Python
python中二维阵列的变换实例
Oct 09 Python
详解Golang 与python中的字符串反转
Jul 21 Python
Python通过Pygame绘制移动的矩形实例代码
Jan 03 Python
python实现剪切功能
Jan 23 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
Python 异步协程函数原理及实例详解
Nov 13 Python
PyTorch中的Variable变量详解
Jan 07 Python
Python plt 利用subplot 实现在一张画布同时画多张图
Feb 26 Python
Django后端按照日期查询的方法教程
Feb 28 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 Python
Python爬虫数据的分类及json数据使用小结
Mar 29 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
PHP 编程安全性小结
2010/01/08 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
PHP 中常量的知识整理
2017/04/14 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
js异或加解密效果代码
2008/06/25 Javascript
jquery select操作的日期联动实现代码
2009/12/06 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
2015/07/09 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
经济管理专业自荐信
2013/12/30 职场文书
文秘人员工作职责
2014/01/31 职场文书
简单的项目建议书模板
2014/03/12 职场文书
网页美工求职信范文
2014/04/17 职场文书
中学生自我评价范文
2015/03/03 职场文书
网聊搭讪开场白
2015/05/28 职场文书
离职证明格式样本
2015/06/12 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python
Python读写yaml文件
2022/03/20 Python