python中文件夾py文件相互引用方式
前言
我之前學過一些別的語言,例如Java,C#,JS。所以我上手python還是挺快的,畢竟語言一通百通。基本上都和C語言差不多。
我寫python優(yōu)先考慮的是如何模塊化地寫程序,因為模塊化以后好復用,把封裝好的代碼自己用就行了。
之前我解決了vscode如何打印文件名和行號的文件,現(xiàn)在解決python相互調用的問題。
Python文件相互調用
每個文件都有打印語句
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ù)')
打印結果
主函數(shù)旁的model5
我是主函數(shù)
情況二:非同級文件
上層調用下層
也是直接調用
import Floder1.model1 print('我是主函數(shù)')
打印結果
我是Floder1的model1文件
我是主函數(shù)
下層調用上層
import sys # 將上級目錄添加到文件路徑中 sys.path.append('.') import model5 print('我是Floder1的model1文件')
打印結果
主函數(shù)旁的model5
我是Floder1的model1文件
Tips:sys.path.append(‘.’)是一個點還是兩個點,我不清楚。我看網上是append(兩個點),我測試了一下不行,得一個點
sys.path.append(‘.’)詳細測試
我測試一下如果在引入別的文件會如何
import sys # 將上級目錄添加到文件路徑中 sys.path.append('.') import model5 import Main import model2 print('我是Floder1的model1文件')
測試成功,在append之后引用同文件夾的文件,
同名測試
打印結果
Floder1里面的model5
我是主函數(shù)
測試結果是就近引入。
引入結論
sys.path.append(‘.’)這句話相當于添加了查找的路徑,在多個文件夾中查找,如果有同名文件,則選擇最近的那個
跨文件夾調用
import sys # 將上級目錄添加到文件路徑中 sys.path.append('.') from Floder2 import model3 print('我是Floder1的model1文件')
測試結果
我是Floder2的model3文件
我是Floder1的model1文件
總結
- 同級引入。import model
- 下級引入 from path import model或者import path.model
- 上級引入 sys.path.append('path ') 添加搜索路徑,如果有同名文件則找到最近的文件
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python+selenium爬取微博熱搜存入Mysql的實現(xiàn)方法
這篇文章主要介紹了python+selenium爬取微博熱搜存入Mysql的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01各種Python庫安裝包下載地址與安裝過程詳細介紹(Windows版)
這篇文章主要介紹了Windows版的各種Python庫安裝包下載地址與安裝過程詳細介紹,本文給大家提供了windows版的各種Python庫安裝包下載地址等相關知識,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-11-11Python機器學習應用之基于天氣數(shù)據(jù)集的XGBoost分類篇解讀
XGBoost是一個優(yōu)化的分布式梯度增強庫,旨在實現(xiàn)高效,靈活和便攜。它在?Gradient?Boosting?框架下實現(xiàn)機器學習算法。XGBoost提供并行樹提升(也稱為GBDT,GBM),可以快速準確地解決許多數(shù)據(jù)科學問題2022-01-01python xlsxwriter創(chuàng)建excel圖表的方法
這篇文章主要為大家詳細介紹了python xlsxwriter創(chuàng)建excel圖表的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06