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使用代理抓取网站图片(多线程)
Mar 14 Python
wxPython定时器wx.Timer简单应用实例
Jun 03 Python
python之PyMongo使用总结
May 26 Python
python 获取当天凌晨零点的时间戳方法
May 22 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
Jun 11 Python
理想高通滤波实现Python opencv示例
Jan 30 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
django有外键关系的两张表如何相互查找
Feb 10 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
如何在scrapy中捕获并处理各种异常
Sep 28 Python
python中的plt.cm.Paired用法说明
May 31 Python
浅析Python中的套接字编程
Jun 22 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中定时计划任务的实现原理
2013/01/08 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
JavaScript 变量命名规则
2009/09/23 Javascript
javascript面向对象编程(一) 实例代码
2010/06/25 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
js格式化时间和js格式化时间戳示例
2014/02/10 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
jquery验证手机号是否正确实例讲解
2015/11/17 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
简单的React SSR服务器渲染实现
2018/12/11 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
tornado 多进程模式解析
2018/01/15 Python
python实现树形打印目录结构
2018/03/29 Python
python微信公众号之关键词自动回复
2018/06/15 Python
Django 登陆验证码和中间件的实现
2018/08/17 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
python破解同事的压缩包密码
2020/10/14 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
励志广播稿300字(5篇)
2014/09/15 职场文书
2016七夕情人节感言
2015/12/09 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
详解 TypeScript 枚举类型
2021/11/02 Javascript