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中无限元素列表的实现方法
Aug 18 Python
python 远程统计文件代码分享
May 14 Python
在Python中用keys()方法返回字典键的教程
May 21 Python
matplotlib设置legend图例代码示例
Dec 19 Python
分享Pycharm中一些不为人知的技巧
Apr 03 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
Oct 17 Python
django 配置阿里云OSS存储media文件的例子
Aug 20 Python
调试Django时打印SQL语句的日志代码实例
Sep 12 Python
PyQt5+python3+pycharm开发环境配置教程
Mar 24 Python
PyQt5 界面显示无响应的实现
Mar 26 Python
详解python对象之间的交互
Sep 29 Python
python Gabor滤波器讲解
Oct 26 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 输出缓存详解
2009/06/20 PHP
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
php 静态变量与自定义常量的使用方法
2010/01/26 PHP
PHP生成自定义长度随机字符串的函数分享
2014/05/04 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
2017/08/03 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
node网页分段渲染详解
2016/09/05 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
python字符串的常用操作方法小结
2016/05/21 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
Python3标准库总结
2019/02/19 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
毕业生自荐信的主要内容
2013/10/29 职场文书
老师自我鉴定范文
2013/12/25 职场文书
2014年女职工工作总结
2014/11/27 职场文书
学生逃课检讨书
2015/02/17 职场文书
离婚答辩状范文
2015/05/22 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
2019事业单位个人工作总结范文
2019/08/26 职场文书