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 数据加密代码
Dec 24 Python
Python类定义和类继承详解
May 08 Python
Tornado高并发处理方法实例代码
Jan 15 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
Python基础教程之if判断,while循环,循环嵌套
Apr 25 Python
python递归法实现简易连连看小游戏
Mar 25 Python
python实现梯度下降和逻辑回归
Mar 24 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
python的链表基础知识点
Sep 13 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
python 实现数据库中数据添加、查询与更新的示例代码
Dec 07 Python
Python urllib request模块发送请求实现过程解析
Dec 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 显示指定路径下的图片
2009/10/29 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
打开超链需要“确认”对话框的方法
2007/03/08 Javascript
Javascript 按位与运算符 (&)使用介绍
2014/02/04 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
jQuery绑定事件on()与弹窗的简要概述
2016/04/27 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
Nodejs 搭建简单的Web服务器详解及实例
2016/11/30 NodeJs
详解Javascript数据类型的转换规则
2016/12/12 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
bootstrap+jquery项目引入文件报错的解决方法
2018/01/22 jQuery
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
python书籍信息爬虫实例
2018/03/19 Python
python版本的仿windows计划任务工具
2018/04/30 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
python中pow函数用法及功能说明
2020/12/04 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
HTML5标签使用方法详解
2015/11/27 HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
信息管理专业推荐信
2013/10/29 职场文书
娱乐节目策划方案
2014/06/10 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
付款承诺函范文
2015/01/21 职场文书
客户经理岗位职责
2015/01/31 职场文书
升职自荐信怎么写
2015/03/05 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android
bat批处理之字符串操作的实现
2022/03/16 Python