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专用方法与迭代机制实例分析
Sep 15 Python
python自带的http模块详解
Nov 06 Python
Python爬取qq music中的音乐url及批量下载
Mar 23 Python
Python基于递归算法实现的走迷宫问题
Aug 04 Python
Python程序员面试题 你必须提前准备!(答案及解析)
Jan 23 Python
Python从单元素字典中获取key和value的实例
Dec 31 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
Jan 29 Python
python实现图片九宫格分割
Mar 07 Python
Django对models里的objects的使用详解
Aug 17 Python
Python 实现加密过的PDF文件转WORD格式
Feb 04 Python
浅析Python 多行匹配模式
Jul 24 Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 21 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
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
php数组遍历类与用法示例
2019/05/24 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
myFocus slide3D v1.1.0 使用方法与下载
2011/01/12 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
bootstrap表格分页实例讲解
2016/12/30 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
Vue Spa切换页面时更改标题的实例代码
2017/07/15 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
原生js实现html手机端城市列表索引选择城市
2020/06/24 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
Python中functools模块的常用函数解析
2016/06/30 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
浅谈Python 参数与变量
2020/06/20 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
化学相关工作求职信
2013/10/02 职场文书
企业节能减排实施方案
2014/03/19 职场文书
董事长秘书工作职责
2014/06/10 职场文书
岗位职责说明书模板
2014/07/30 职场文书
买房子个人收入证明
2014/10/12 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
最美乡村教师观后感
2015/06/11 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js
浅谈Redis缓冲区机制
2022/06/05 Redis