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连接mysql并提交mysql事务示例
Mar 05 Python
Python脚本实现格式化css文件
Apr 08 Python
Python使用chardet判断字符编码
May 09 Python
Python中pygame的mouse鼠标事件用法实例
Nov 11 Python
python添加模块搜索路径方法
Sep 11 Python
使用python实现链表操作
Jan 26 Python
python 构造三维全零数组的方法
Nov 12 Python
Django如何防止定时任务并发浅析
May 14 Python
Pandas之groupby( )用法笔记小结
Jul 23 Python
使用python的turtle绘画滑稽脸实例
Nov 21 Python
Django之富文本(获取内容,设置内容方式)
May 21 Python
Python进行统计建模
Aug 10 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页码形式分页函数支持静态化地址及ajax分页
2014/03/28 PHP
Yii2框架实现注册和登录教程
2016/09/30 PHP
php实现数据库的增删改查
2017/02/26 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
JS实现拖动示例代码
2013/11/01 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
vue中rem的配置的方法示例
2018/08/30 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
Python将多个excel文件合并为一个文件
2018/01/03 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
python opencv肤色检测的实现示例
2020/12/21 Python
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
PHP两种查询函数array/row的区别
2013/06/03 面试题
司机岗位职责
2013/11/15 职场文书
厨房工作人员岗位职责
2013/11/15 职场文书
如何写好升职自荐信
2014/01/06 职场文书
捐款倡议书范文
2014/02/02 职场文书
实习生岗位职责
2014/04/12 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
教师先进个人材料
2014/12/17 职场文书
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android
Golang 字符串的常见操作
2022/04/19 Golang