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

每個文件都有打印語句
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(‘.’)是一個點還是兩個點,我不清楚。我看網(wǎng)上是append(兩個點),我測試了一下不行,得一個點
sys.path.append(‘.’)詳細(xì)測試
我測試一下如果在引入別的文件會如何
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)于添加了查找的路徑,在多個文件夾中查找,如果有同名文件,則選擇最近的那個
跨文件夾調(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 ') 添加搜索路徑,如果有同名文件則找到最近的文件
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python+selenium爬取微博熱搜存入Mysql的實現(xiàn)方法
這篇文章主要介紹了python+selenium爬取微博熱搜存入Mysql的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
Python中通過property設(shè)置類屬性的訪問
為了達(dá)到類似C++類的封裝性能,可以使用property來設(shè)置Python類屬性的訪問權(quán)限,本文就介紹一下Python中通過property設(shè)置類屬性的訪問,感興趣的可以了解一下,感興趣的可以了解一下2023-09-09
各種Python庫安裝包下載地址與安裝過程詳細(xì)介紹(Windows版)
這篇文章主要介紹了Windows版的各種Python庫安裝包下載地址與安裝過程詳細(xì)介紹,本文給大家提供了windows版的各種Python庫安裝包下載地址等相關(guān)知識,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-11-11
Python機(jī)器學(xué)習(xí)應(yīng)用之基于天氣數(shù)據(jù)集的XGBoost分類篇解讀
XGBoost是一個優(yōu)化的分布式梯度增強(qiáng)庫,旨在實現(xiàn)高效,靈活和便攜。它在?Gradient?Boosting?框架下實現(xiàn)機(jī)器學(xué)習(xí)算法。XGBoost提供并行樹提升(也稱為GBDT,GBM),可以快速準(zhǔn)確地解決許多數(shù)據(jù)科學(xué)問題2022-01-01
python xlsxwriter創(chuàng)建excel圖表的方法
這篇文章主要為大家詳細(xì)介紹了python xlsxwriter創(chuàng)建excel圖表的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06

