雖然有軟件目錄開發(fā)規(guī)范,可以在啟動(dòng)文件里向下面這樣添加BASE_DIR:
站在用戶的角度思考問題,與客戶深入溝通,找到巴楚網(wǎng)站設(shè)計(jì)與巴楚網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋巴楚地區(qū)。BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
但是平時(shí)自己寫腳本的時(shí)候,并不想搞得太正規(guī)。但是在一個(gè)程序中需要打開某個(gè)文件是時(shí)候,又會(huì)遇到路徑的問題。
這里是打開文件,不是加載模塊。如果是import的問題,只需要調(diào)用 sys.path.append(DIR)
,把某個(gè)目錄加到環(huán)境變量中去就可以了。
有一個(gè)配置文件 settings.py ,不想把密碼等敏感信息寫在配置文件里,所以單獨(dú)創(chuàng)建了一個(gè)文件 password.txt 用于存放密碼等敏感信息,假設(shè)就在同一個(gè)文件夾下,那么 settings.py 要加載 password.txt 里的內(nèi)容,需要打開文件:
file = open("password.txt")
啟動(dòng)同一文件夾下的程序,讀取配置文件都沒有問題。但是如果程序在別的位置,就會(huì)報(bào)錯(cuò)。找不到 password.txt 文件。原因很簡(jiǎn)單,啟動(dòng)路徑變了。
上面的做法,都是把啟動(dòng)文件的文件夾作為相對(duì)路徑的當(dāng)前目錄,然后查找要打開的文件。
不想把路徑寫死,否則路徑的位置或者中間的任何文件夾的名稱變動(dòng),都會(huì)影響查找文件。就需要用動(dòng)態(tài)的方法獲取到路徑。__file__
是用來獲得模塊所在的路徑的。這可能得到的是一個(gè)相對(duì)路徑,也可能是絕對(duì)路徑。按絕對(duì)路徑執(zhí)行則得到的是絕對(duì)路徑,按相對(duì)路徑執(zhí)行則得到的是相對(duì)路徑。相對(duì)路徑或絕對(duì)路徑都無所謂。
在 settings.py 里獲取 __file__
屬性就得到了 settings.py 文件所在的路徑,這樣就動(dòng)態(tài)的獲取到路徑了。之后再進(jìn)行處理拼接出 password.txt 文件的路徑。這樣無輪從哪里啟動(dòng)程序,只要能夠 import settings
就沒有問題了。
路徑的處理,就是 os.path 模塊:
# 在 settings.py 文件中
dir_name = os.path.dirname(__file__) # 動(dòng)態(tài)的獲取到文件夾的路徑
fine_name = "password.txt" # 同一文件夾下的文件名
pass_file = os.path.join(dir_name, fine_name) # 拼接出完整的文件路徑
file = open(pass_file)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁(yè)名稱:在配置文件中打開其他文件時(shí)路徑的處理-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://aaarwkj.com/article22/ggjjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站內(nèi)鏈、定制網(wǎng)站、網(wǎng)站制作、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容