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多进程共享变量
Apr 06 Python
Odoo中如何生成唯一不重复的序列号详解
Feb 10 Python
python爬取足球直播吧五大联赛积分榜
Jun 13 Python
Django中使用Celery的方法示例
Nov 29 Python
Python函数中不定长参数的写法
Feb 13 Python
python启动应用程序和终止应用程序的方法
Jun 28 Python
django 捕获异常和日志系统过程详解
Jul 18 Python
Python浮点数四舍五入问题的分析与解决方法
Nov 19 Python
python sleep和wait对比总结
Feb 03 Python
深度学习详解之初试机器学习
Apr 14 Python
Python if else条件语句形式详解
Mar 24 Python
Pytorch中expand()的使用(扩展某个维度)
Jul 15 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读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
jquery组件使用中遇到的问题整理及解决
2014/02/21 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
详解webpack分包及异步加载套路
2017/06/29 Javascript
shiro授权的实现原理
2017/09/21 Javascript
js用类封装pop弹窗组件
2017/10/08 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
微信小程序实现红包雨功能
2018/07/11 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
python函数参数*args**kwargs用法实例
2013/12/04 Python
python八大排序算法速度实例对比
2017/12/06 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
CSS3 display知识详解
2015/11/25 HTML / CSS
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
建筑班组长岗位职责
2014/01/02 职场文书
高级编程求职信模板
2014/02/16 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
贷款担保申请书
2014/05/20 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
淘宝文案策划岗位职责
2015/04/14 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书