91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-05-29 06:57:27 來源:網絡 閱讀:460 作者:騎士救兵 欄目:編程語言

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

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

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

問題場景

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

file = open("password.txt")

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

分析和解決

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

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

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

明光市| 横山县| 新巴尔虎左旗| 长顺县| 响水县| 普安县| 饶河县| 合川市| 南投县| 阜阳市| 齐齐哈尔市| 咸宁市| 韩城市| 西安市| 横山县| 广水市| 昌平区| 奇台县| 获嘉县| 嘉定区| 勐海县| 烟台市| 鞍山市| 龙里县| 扎兰屯市| 融水| 宁化县| 阳东县| 搜索| 嘉兴市| 略阳县| 东台市| 自治县| 青岛市| 平顶山市| 邵东县| 鹰潭市| 吉首市| 潍坊市| 深圳市| 宿州市|