今天寫了程式碼,本來是想得到目前檔案的上面三層的目錄的,結果回傳的卻是錯誤
import osimport sysprint(__file__)# 得到上上层目录的路径之后,加入到默认的环境变量中BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) sys.path.append(BASE_DIR)print("******", BASE_DIR) 输出结果:<encoding error> ******
然後在Stack Overflow看到了以下說法
上面的大概意思說dirname和basename在分割路徑的時候並不會去考慮當前路徑,因此我們需要做以下修改,但是我之前寫過的一個程式用的是相同的程式碼,可以執行,這讓我很費解,不過問題確實解決了,如果有好心的網友知道具體的原因,還請在下面評論中指點迷津
修改程式碼:把__file__改成os.path.abspath(__file___)就可以了
import osimport sysprint(os.path.abspath(__file__)) # 得到上上层目录的路径之后,加入到默认的环境变量中BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) sys.path.append(BASE_DIR)print("******", BASE_DIR)
以上是分享自己寫python時遇到的錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!