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实现划词翻译
Apr 23 Python
在Python中使用SQLite的简单教程
Apr 29 Python
Python使用pyodbc访问数据库操作方法详解
Jul 05 Python
python opencv判断图像是否为空的实例
Jan 26 Python
使用Python计算玩彩票赢钱概率
Jun 26 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
Jan 10 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
Feb 25 Python
python实现井字棋小游戏
Mar 04 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
Apr 20 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
pycharm 的Structure界面设置操作
Feb 05 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异常处理Exception类
2015/12/11 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
jquery 图片轮换效果
2010/07/29 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
详解如何运行vue项目
2019/04/15 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
Python程序语言快速上手教程
2012/07/18 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
python datetime中strptime用法详解
2019/08/29 Python
python将图片转base64,实现前端显示
2020/01/09 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
2020/11/01 Python
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
2014年安全生产大检查方案
2014/05/13 职场文书
职务任命书范本
2014/06/05 职场文书
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS