python中文件夾py文件相互引用方式
前言
我之前學(xué)過一些別的語言,例如Java,C#,JS。所以我上手python還是挺快的,畢竟語言一通百通?;旧隙己虲語言差不多。
我寫python優(yōu)先考慮的是如何模塊化地寫程序,因?yàn)槟K化以后好復(fù)用,把封裝好的代碼自己用就行了。
之前我解決了vscode如何打印文件名和行號(hào)的文件,現(xiàn)在解決python相互調(diào)用的問題。
Python文件相互調(diào)用

每個(gè)文件都有打印語句
print('我是Floder1的model1文件')主函數(shù)
print('我是主函數(shù)')文件路徑
-Floder1: -model1.py -model2.py -Floder2: -model3.py -model4.py Main.py(主函數(shù)) model5.py
情況一:同級文件

直接import就行了
import model5
print('我是主函數(shù)')打印結(jié)果
主函數(shù)旁的model5
我是主函數(shù)
情況二:非同級文件
上層調(diào)用下層

也是直接調(diào)用
import Floder1.model1
print('我是主函數(shù)')打印結(jié)果
我是Floder1的model1文件
我是主函數(shù)
下層調(diào)用上層

import sys
# 將上級目錄添加到文件路徑中
sys.path.append('.')
import model5
print('我是Floder1的model1文件')打印結(jié)果
主函數(shù)旁的model5
我是Floder1的model1文件
Tips:sys.path.append(‘.’)是一個(gè)點(diǎn)還是兩個(gè)點(diǎn),我不清楚。我看網(wǎng)上是append(兩個(gè)點(diǎn)),我測試了一下不行,得一個(gè)點(diǎn)
sys.path.append(‘.’)詳細(xì)測試
我測試一下如果在引入別的文件會(huì)如何
import sys
# 將上級目錄添加到文件路徑中
sys.path.append('.')
import model5
import Main
import model2
print('我是Floder1的model1文件')
測試成功,在append之后引用同文件夾的文件,
同名測試

打印結(jié)果
Floder1里面的model5
我是主函數(shù)
測試結(jié)果是就近引入。
引入結(jié)論
sys.path.append(‘.’)這句話相當(dāng)于添加了查找的路徑,在多個(gè)文件夾中查找,如果有同名文件,則選擇最近的那個(gè)
跨文件夾調(diào)用

import sys
# 將上級目錄添加到文件路徑中
sys.path.append('.')
from Floder2 import model3
print('我是Floder1的model1文件')測試結(jié)果
我是Floder2的model3文件
我是Floder1的model1文件
總結(jié)
- 同級引入。import model
- 下級引入 from path import model或者import path.model
- 上級引入 sys.path.append('path ') 添加搜索路徑,如果有同名文件則找到最近的文件
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
keras自動(dòng)編碼器實(shí)現(xiàn)系列之卷積自動(dòng)編碼器操作
這篇文章主要介紹了keras自動(dòng)編碼器實(shí)現(xiàn)系列之卷積自動(dòng)編碼器操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
一文教你如何解決Python開發(fā)總是import出錯(cuò)的問題
經(jīng)常朋友碰到Python開發(fā)的過程中import包報(bào)錯(cuò)的問題,所以本文將和大家介紹一下可編輯安裝(Editable Install)模式,可以輕松解決import出錯(cuò)的問題,感興趣的可以了解下2025-05-05
python文件讀取read及readlines兩種方法使用詳解
這篇文章主要為大家介紹了python文件讀取read及readlines兩種方法的使用示例及區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
查看keras的默認(rèn)backend實(shí)現(xiàn)方式
這篇文章主要介紹了查看keras的默認(rèn)backend實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
python使用tomorrow實(shí)現(xiàn)多線程的例子
今天小編就為大家分享一篇python使用tomorrow實(shí)現(xiàn)多線程的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Python-re中search()函數(shù)的用法詳解(查找ip)
這篇文章主要介紹了Python-re中search()函數(shù)的用法-----查找ip,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
matplotlib 范圍選區(qū)(SpanSelector)的使用
這篇文章主要介紹了matplotlib 范圍選區(qū)(SpanSelector)的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02

