欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

在配置文件中打開其他文件時路徑的處理

雖然有軟件目錄開發(fā)規(guī)范,可以在啟動文件里向下面這樣添加BASE_DIR:

諸暨網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),諸暨網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為諸暨上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的諸暨做網(wǎng)站的公司定做!

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  

但是平時自己寫腳本的時候,并不想搞得太正規(guī)。但是在一個程序中需要打開某個文件是時候,又會遇到路徑的問題。
這里是打開文件,不是加載模塊。如果是import的問題,只需要調(diào)用 sys.path.append(DIR) ,把某個目錄加到環(huán)境變量中去就可以了。

問題場景

有一個配置文件 settings.py ,不想把密碼等敏感信息寫在配置文件里,所以單獨(dú)創(chuàng)建了一個文件 password.txt 用于存放密碼等敏感信息,假設(shè)就在同一個文件夾下,那么 settings.py 要加載 password.txt 里的內(nèi)容,需要打開文件:

file = open("password.txt")

啟動同一文件夾下的程序,讀取配置文件都沒有問題。但是如果程序在別的位置,就會報錯。找不到 password.txt 文件。原因很簡單,啟動路徑變了。
上面的做法,都是把啟動文件的文件夾作為相對路徑的當(dāng)前目錄,然后查找要打開的文件。

分析和解決

不想把路徑寫死,否則路徑的位置或者中間的任何文件夾的名稱變動,都會影響查找文件。就需要用動態(tài)的方法獲取到路徑。
__file__ 是用來獲得模塊所在的路徑的。這可能得到的是一個相對路徑,也可能是絕對路徑。按絕對路徑執(zhí)行則得到的是絕對路徑,按相對路徑執(zhí)行則得到的是相對路徑。相對路徑或絕對路徑都無所謂。
在 settings.py 里獲取 __file__ 屬性就得到了 settings.py 文件所在的路徑,這樣就動態(tài)的獲取到路徑了。之后再進(jìn)行處理拼接出 password.txt 文件的路徑。這樣無輪從哪里啟動程序,只要能夠 import settings 就沒有問題了。
路徑的處理,就是 os.path 模塊:

# 在 settings.py 文件中
dir_name = os.path.dirname(__file__)  # 動態(tài)的獲取到文件夾的路徑
fine_name = "password.txt"  # 同一文件夾下的文件名
pass_file = os.path.join(dir_name, fine_name)  # 拼接出完整的文件路徑
file = open(pass_file)

網(wǎng)頁名稱:在配置文件中打開其他文件時路徑的處理
網(wǎng)站路徑:http://chinadenli.net/article8/ihsgop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版網(wǎng)站設(shè)計、小程序開發(fā)品牌網(wǎng)站設(shè)計、用戶體驗(yàn)動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司