Python 跨.py文件調(diào)用自定義函數(shù)說明
0 前言
os.chdir() :用于改變當(dāng)前python工作的目錄到指定的路徑
sys.path:是python搜索模塊的一個(gè)路徑集,為list,自定義的包可以把存放路徑加進(jìn)去,之后直接調(diào)用包名就行了。
1 同一文件夾
一般當(dāng)前的工作路徑是在搜索路徑里面,所以不用sys.path.append,如果調(diào)用包的時(shí)候報(bào)錯(cuò),先使用sys.path查看當(dāng)前路徑在不在list里,不在list里加進(jìn)去才能直接調(diào)用自定義包。
一個(gè)文件夾內(nèi)有兩個(gè) .py 文件:
exe101.py
FileWriteAbout.py
我們想在exe101.py文件內(nèi)調(diào)用FileWriteAbout.py文件中的 任意 一個(gè)自定義函數(shù)。

假如調(diào)用FileWriteAbout.py文件中的函數(shù)writeList():

直接在exe101.py中輸入:
import FileWriteAbout # 導(dǎo)入另一個(gè)文件 FileWriteAbout.writeList() #調(diào)用其中的函數(shù)名 #或者下面這種,只是調(diào)用時(shí)省略py文件名容易導(dǎo)致不同包內(nèi)的函數(shù)名字沖突 from FileWriteAbout import * writeList() #直接寫函數(shù)名
ps:
如果只涉及被調(diào)用py文件中的一個(gè)具體函數(shù)
就可以將調(diào)入形式寫成:
from FileWriteAbout import writeList
writeList()
2 不同文件夾下
兩個(gè)py文件不再一個(gè)目錄的情況下
2.1 用append將待調(diào)用文件路徑加入搜索list
import sys sys.path.append(r"D:\MathElectric\python\exercises") # 待引用的py文件路徑加到了搜索列表里 import FileWriteAbout # py 文件名 FileWriteAbout.writeList() # 具體函數(shù)
2.2 使用imp包
導(dǎo)入imp包:
import imp
AA = imp.load_source(name,pathname[,file])
將源py文件pathname導(dǎo)入到名字為name的模塊中,name可以是自己定義。
例如:
import imp # 導(dǎo)入
CC = imp.load_source('MM',r'D:\MathElectric\python\exercises\FileWriteAbout.py')
使用時(shí):
方法(1):直接使用
CC.writeList()
方法(2):導(dǎo)入別名使用
import MM
MM.writeList()
3 spyder使用相對(duì)路徑讀取文件
絕對(duì)路徑讀取文件沒有問題。
data = pd.read_excel(r"D:/project/UCIpowerPre/CCPP/Folds5x2_pp.xlsx")
使用spyder寫代碼的時(shí)候想使用相對(duì)路徑直接讀數(shù)據(jù),
data = pd.read_excel(r"CCPP/Folds5x2_pp.xlsx")
發(fā)現(xiàn)報(bào)錯(cuò)。
其實(shí)就是代碼編輯的工作路徑和數(shù)據(jù)路徑不對(duì)應(yīng)。
我們可以把工作路徑切換到待讀取文件所在的位置。
或者在spyder右上角把當(dāng)前的工作路徑改一下。
import os
os.chdir(r"D:/project/UCIpowerPre")
重點(diǎn)區(qū)分這幾個(gè)路徑的區(qū)別:
當(dāng)前的工作路徑
py文件包的搜索路徑
數(shù)據(jù)文件所在路徑
補(bǔ)充知識(shí):python只引入模塊并不能直接調(diào)用該模塊的函數(shù)
如下圖:

這里只引入了recognizer模塊,沒有直接引入其函數(shù),會(huì)報(bào)錯(cuò)name 'XXX' is not defined
若想頻繁使用某個(gè)函數(shù),可以將它賦值給一個(gè)本地變量
如:
predict = recognizer.predict clean_captcha = recognizer.clean_captcha get_captcha = recognizer.get_captcha

以上這篇Python 跨.py文件調(diào)用自定義函數(shù)說明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何基于windows實(shí)現(xiàn)python定時(shí)爬蟲
這篇文章主要介紹了如何基于windows實(shí)現(xiàn)python定時(shí)爬蟲,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
python結(jié)合shell查詢google關(guān)鍵詞排名的實(shí)現(xiàn)代碼
這篇文章主要介紹了python結(jié)合shell查詢google關(guān)鍵詞排名的實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-02-02
Python中的pandas表格模塊、文件模塊和數(shù)據(jù)庫(kù)模塊
這篇文章介紹了Python中的pandas表格模塊、文件模塊和數(shù)據(jù)庫(kù)模塊,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
pyqt5 實(shí)現(xiàn) 下拉菜單 + 打開文件的示例代碼
今天小編就為大家分享一篇pyqt5 實(shí)現(xiàn) 下拉菜單 + 打開文件的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-06-06
Python操作MySQL數(shù)據(jù)庫(kù)的簡(jiǎn)單步驟分享
這篇文章主要給大家介紹了關(guān)于Python操作MySQL數(shù)據(jù)庫(kù)的簡(jiǎn)單步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Python實(shí)現(xiàn)批量提取word文件中文本框內(nèi)容
在日常的辦公中,有時(shí)需要提取多個(gè)word文件中的文字框的內(nèi)容,這篇文章主要為大家介紹了三種常見的方法來(lái)提取文本框的內(nèi)容,希望對(duì)大家有一定的幫助2024-02-02
Python基于Tkinter實(shí)現(xiàn)的垃圾分類答題軟件代碼
這篇文章主要介紹了基于Tkinter實(shí)現(xiàn)的垃圾分類答題軟件代碼,圖形用戶界面是一種人與計(jì)算機(jī)通信的界面顯示格式,允許用戶使用鼠標(biāo)等輸入設(shè)備操縱屏幕上的圖標(biāo)或菜單選項(xiàng),需要的朋友可以參考下2023-04-04

