专栏首页恩蓝脚本Python 跨.py文件调用自定义函数说明

Python 跨.py文件调用自定义函数说明

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文件中的 任意 一个自定义函数。

假如调用FileWriteAbout.py文件中的函数writeList():

直接在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只引入模块并不能直接调用该模块的函数

如下图:

这里只引入了recognizer模块,没有直接引入其函数,会报错name ‘XXX’ is not defined

若想频繁使用某个函数,可以将它赋值给一个本地变量

如:

predict = recognizer.predict
clean_captcha = recognizer.clean_captcha
get_captcha = recognizer.get_captcha

以上这篇Python 跨.py文件调用自定义函数说明就是小编分享给大家的全部内容了,希望能给大家一个参考。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Django 删除upload_to文件的步骤

    新版Django在admin后台直接删除一条数据时,file = models.FileField(upload_to=‘file’)上传的文件并不会删除,以下...

    砸漏
  • Linux低电量自动关机的实现办法

    最近住所电不稳定,经常突然之间就断电了,虽然我的是笔记本,但是也不一定能挨到来电,这样下去过不了多久笔记本里的SSD就要挂比 的节奏啊。

    砸漏
  • python为什么要安装到c盘

    所有的软件如果你不对安装过程的路径进行设置的话都是默认安装到c盘的,不仅仅是Python。

    砸漏
  • SAP 生产订单状态及状态ID和描述表

    用户5495712
  • opitype:对HLA I型基因进行4位分型

    HLAminer软件可以同时对HlA I型基因和II 型基因进行分型,但是分型结果中不可避免的会存在假阳性的结果。为了提高分型结果的准确性,不同的研究团队都在开...

    生信修炼手册
  • RocketMQ学习六-消息存储

    消息存储主要做的事情:首先将消息放入,然后进行消息追加,进行统计,然后进行刷盘操作,最后进行HA主从同步。此时的消息放入是在CommitLog中会进行转发到Co...

    路行的亚洲
  • linux环境常用分析日志的几个命令

    分析日志是定位问题的常用手段,但实际线上可能有大量日志,掌握一些常见查看、过滤和分析日志的命令能起到事半功倍的效果。下面列出工作中最常用的一些命令,可在具体使用...

    用户1215536
  • Chrome使用Fiddler抓HTTPS包

    drunkdream
  • Kotlin —  最佳实践

    code_horse
  • SAP CRM WebClient UI Excel Export的运行时执行明细

    thtmlbExcelExportGen('https://ldcijerry.corp:44300/sap(bD1FTiZjPTAwMSZpPTEmZT1WM...

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券