Python導(dǎo)入不同文件夾中文件的方法詳解
前言
在寫(xiě) python 程序的時(shí)候,經(jīng)常會(huì)用到引入其他文件夾里的 py 文件,要是都在同目錄下直接 import 就好了,可是有的不在同一個(gè)目錄,很多時(shí)候就直接 import 報(bào)錯(cuò)了。下面介紹導(dǎo)入文件的方法:
一、導(dǎo)入同一目錄下的文件
如下圖,main.py 和 config.py 文件都在同一個(gè)目錄。

如果要在 mian.py 中導(dǎo)入 config.py,代碼如下:
import config
二、導(dǎo)入不同目錄下的文件
1、 調(diào)用子目錄下的文件
目錄如下:

如果要在 main.py 中導(dǎo)入同級(jí)目錄下的子目錄文件 BERT_BiLSTM_CRF.py,就必須在 model 文件夾下建立空文件__init__.py文件。新的目錄結(jié)構(gòu)如下:

導(dǎo)入代碼如下:
from model.BERT_BiLSTM_CRF import BERT_BiLSTM_CRF # 導(dǎo)入文件下的 BERT_BiLSTM_CRF 函數(shù)
2、導(dǎo)入上級(jí)目錄下的文件
目錄如下:

想要實(shí)現(xiàn) main.py 調(diào)用 BERT_BiLSTM_CRF.py,做法是先跳到上級(jí)目錄 BERT-Chinese-NER-pytorch 下面,然后在 model 目錄下建一個(gè)空文件 init.py ,就可以像第二步調(diào)用子目錄下的模塊一樣進(jìn)行調(diào)用了。新的目錄結(jié)構(gòu)如下:

導(dǎo)入代碼如下:
import sys
sys.path.append("..") # 跳到上級(jí)目錄下面(sys.path添加目錄時(shí)注意是在windows還是在Linux下,windows下需要‘\\'否則會(huì)出錯(cuò)。)
from model.BERT_BiLSTM_CRF import BERT_BiLSTM_CRF # 導(dǎo)入
關(guān)于 init.py
在 python 模塊的每一個(gè)包中,都有一個(gè) init.py 文件(這個(gè)文件定義了包的屬性和方法),然后是一些模塊文件和子目錄,假如子目錄中也有__init__.py ,那么它就是這個(gè)包的子包了。當(dāng)你將一個(gè)包作為模塊導(dǎo)入(比如從 xml 導(dǎo)入 dom )的時(shí)候,實(shí)際上導(dǎo)入了它的__init__.py 文件。
一個(gè)包是一個(gè)帶有特殊文件 __init__.py 的目錄,__init__.py 文件定義了包的屬性和方法。其實(shí)它可以什么也不定義,可以只是一個(gè)空文件,但是必須存在。如果 __init__.py 不存在,這個(gè)目錄就僅僅是一個(gè)目錄,而不是一個(gè)包,它就不能被導(dǎo)入或者包含其它的模塊和嵌套包。
附:python 導(dǎo)入一個(gè)文件夾下的所有文件
import os
path="" #填寫(xiě)自己想要讀取的文件夾路徑
files=os.listdir(path)
text=''
for file in files:
position=path+file
# print(position)
with open(position ,'r',encoding='utf-8') as f:
for line in f.readlines():
text+=line
print(text)
總結(jié)
到此這篇關(guān)于Python導(dǎo)入不同文件夾中文件的文章就介紹到這了,更多相關(guān)Python導(dǎo)入不同文件夾文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用pandas讀取json文件并進(jìn)行刷選導(dǎo)出xlsx文件的方法示例
這篇文章主要介紹了python使用pandas讀取json文件并進(jìn)行刷選導(dǎo)出xlsx文件的方法,結(jié)合實(shí)例形式分析了python調(diào)用pandas模塊針對(duì)json數(shù)據(jù)操作的相關(guān)使用技巧,需要的朋友可以參考下2023-06-06
centos6.5安裝python3.7.1之后無(wú)法使用pip的解決方案
今天小編就為大家分享一篇關(guān)于centos6.5安裝python3.7.1之后無(wú)法使用pip的解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02
Python裝飾器類方法擴(kuò)展元類管理實(shí)例探究
這篇文章主要為大家介紹了Python裝飾器類方法擴(kuò)展元類管理實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
完美解決Pycharm無(wú)法導(dǎo)入包的問(wèn)題 Unresolved reference
今天小編就為大家分享一篇完美解決Pycharm無(wú)法導(dǎo)入包的問(wèn)題 Unresolved reference,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
簡(jiǎn)單實(shí)現(xiàn)python數(shù)獨(dú)游戲
這篇文章主要為大家詳細(xì)介紹了如何簡(jiǎn)單實(shí)現(xiàn)python數(shù)獨(dú)游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
python解析html提取數(shù)據(jù),并生成word文檔實(shí)例解析
這篇文章主要介紹了python解析html提取數(shù)據(jù),并生成word文檔實(shí)例解析,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Python Pandas學(xué)習(xí)之Pandas數(shù)據(jù)結(jié)構(gòu)詳解
Pandas中一共有三種數(shù)據(jù)結(jié)構(gòu),分別為:Series、DataFrame和MultiIndex(老版本中叫Panel )。其中Series是一維數(shù)據(jù)結(jié)構(gòu),DataFrame是二維的表格型數(shù)據(jù)結(jié)構(gòu),MultiIndex是三維的數(shù)據(jù)結(jié)構(gòu)。本文將詳細(xì)為大家講解這三個(gè)數(shù)據(jù)結(jié)構(gòu),需要的可以參考一下2022-02-02
python 函數(shù)進(jìn)階之閉包函數(shù)
這篇文章主要介紹了python 函數(shù)進(jìn)階之閉包函數(shù),內(nèi)函數(shù)使用了外函數(shù)的局部變量,并且外函數(shù)把內(nèi)函數(shù)返回出來(lái)的過(guò)程叫做閉包,里面的內(nèi)函數(shù)是閉包函數(shù),下文相關(guān)介紹需要的小伙伴可以參考一下2022-04-04

