最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 解決相對路徑問題:"No such file or directory"

 更新時間:2020年06月05日 09:09:02   作者:掙扎的藍藻  
這篇文章主要介紹了Python 解決相對路徑問題:"No such file or directory"具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

如果你取相對路徑不是在主文件里,可能就會有相對路徑問題:"No such file or directory"。

因為 python 的相對路徑,相對的都是主文件。

如下目錄結構:

| -- main.py
   | -- conf.py
   | -- start.png
| -- config.txt

main.py 是主文件。

conf.py 里引用 config.txt 用相對路徑。

如果用 . 或 … 相對的是 main.py,所以用 "./config.txt",相對于 main.py 是同一個目錄下。

.指當前文件所在的文件夾,… 指當前文件的上一級目錄。

補充知識:解決python模塊調(diào)用時代碼中使用相對路徑訪問的文件,提示文件不存在的問題

問題分析:

在編碼過程中使用相對路徑使代碼的穩(wěn)定性更好,即使項目目錄發(fā)生變更,只要文件相對路徑不變,代碼依然可以穩(wěn)定運行。但是在python代碼中使用相對路徑時會存在以下問題,示例代碼結構如下:

其中test包中包含兩個文件first.py和user_info.txt,first.py代碼中只有一個函數(shù)read_file,用于讀取user_info.txt文件第一行的內(nèi)容,并打印結果,讀取文件使用相對路徑,代碼如下:

import os
print("當前路徑 -> %s" %os.getcwd())
def read_file() :
  with open("user_info.txt" , encoding = 'utf-8') as f_obj :
    content = f_obj.readline()
    print("文件內(nèi)容 -> %s" %content)
 
if __name__ == '__main__' :
  read_file()

first.py程序代碼執(zhí)行結果如下:

當前路徑 -> E:\程序\python代碼\PythonDataAnalysis\Demo\test

文件內(nèi)容 -> hello python !!!

與test在同一目錄下存在一個second.py文件,在這個文件中調(diào)用first.py文件中的read_file方法讀取user_info.txt文件,代碼如下:

from test import first

first.read_file()

second.py程序執(zhí)行結果如下:

當前路徑 -> E:\程序\python代碼\PythonDataAnalysis\Demo

File "E:/程序/python代碼/PythonDataAnalysis/Demo/second.py", line 8, in <module>

first.read_file()

File "E:\程序\python代碼\PythonDataAnalysis\Demo\test\first.py", line 10, in read_file

with open("user_info.txt" , encoding = 'utf-8') as f_obj :

FileNotFoundError: [Errno 2] No such fileor directory: 'user_info.txt'

以上信息提示user_info.txt 文件不存在,查看os.getcwd() 函數(shù)輸出的當前路徑會發(fā)現(xiàn),當前路徑是 XXX/Demo,而不是上一次單獨執(zhí)行first.py 文件時的 XXX/Demo/test了,所以程序報錯文件不存在的根本原因是因為當前路徑變了,導致代碼中的由相對路徑構成的絕對路徑發(fā)生了變化。

解決方法:

對于這種問題,只需要在使用相對路徑進行文件訪問的模塊中加入以下代碼即可(加粗內(nèi)容),修改后的first.py代碼如下:

import os
print("當前路徑 -> %s" %os.getcwd())
current_path = os.path.dirname(__file__)
def read_file() :
  with open(current_path + "/user_info.txt" , encoding = 'utf-8') as f_obj :
    content = f_obj.readline()
    print("文件內(nèi)容 -> %s" %content)
 
if __name__ == '__main__' :
  read_file()

first.py 程序執(zhí)行結果如下:

當前路徑 -> E:\程序\python代碼\PythonDataAnalysis\Demo\test

current_path -> E:/程序/python代碼/PythonDataAnalysis/Demo/test

文件內(nèi)容 -> hello python !!!

second.py代碼不變,second.py代碼執(zhí)行結果如下:

當前路徑 -> E:\程序\python代碼\PythonDataAnalysis\Demo

current_path -> E:\程序\python代碼\PythonDataAnalysis\Demo\test

文件內(nèi)容 -> hello python !!!

由以上執(zhí)行結果可以發(fā)現(xiàn),雖然first.py和second.py代碼執(zhí)行時os.getcwd()函數(shù)的輸出結果還是不一致,但是current_path = os.path.dirname(__file__)

代碼得到的current_path路徑是相同的,current_path就是first.py文件所處的路徑,然后再由current_path 和user_info.txt 組成的文件絕對路徑則是固定的,這樣就可以確保在進行模塊導入時,模塊中使用相對路徑進行訪問的文件不會出錯。

以上這篇Python 解決相對路徑問題:"No such file or directory"就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 基于np.arange與np.linspace細微區(qū)別(數(shù)據(jù)溢出問題)

    基于np.arange與np.linspace細微區(qū)別(數(shù)據(jù)溢出問題)

    這篇文章主要介紹了基于np.arange與np.linspace細微區(qū)別(數(shù)據(jù)溢出問題),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python爬蟲租房信息在地圖上顯示的方法

    python爬蟲租房信息在地圖上顯示的方法

    這篇文章主要介紹了python爬蟲租房信息在地圖上顯示的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 解決python訓練模型報錯:BrokenPipeError:?[Errno?32]?Broken?pipe

    解決python訓練模型報錯:BrokenPipeError:?[Errno?32]?Broken?pipe

    這篇文章主要介紹了解決python訓練模型報錯:BrokenPipeError:?[Errno?32]?Broken?pipe問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • python 數(shù)據(jù)加密代碼

    python 數(shù)據(jù)加密代碼

    使用Python來做數(shù)據(jù)加密同樣簡單,可以使用hashlib或者hmac模塊來做數(shù)據(jù)加密
    2008-12-12
  • Python實現(xiàn)中文數(shù)字轉(zhuǎn)換為阿拉伯數(shù)字的方法示例

    Python實現(xiàn)中文數(shù)字轉(zhuǎn)換為阿拉伯數(shù)字的方法示例

    這篇文章主要介紹了Python實現(xiàn)中文數(shù)字轉(zhuǎn)換為阿拉伯數(shù)字的方法,涉及Python字符串遍歷、轉(zhuǎn)換相關操作技巧,需要的朋友可以參考下
    2017-05-05
  • 詳解Django框架中的視圖級緩存

    詳解Django框架中的視圖級緩存

    這篇文章主要介紹了詳解Django框架中的視圖級緩存,Django是最具人氣的Python web開發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • 利用Python?Matlab繪制曲線圖的簡單實例

    利用Python?Matlab繪制曲線圖的簡單實例

    們經(jīng)常會遇到這種情況,有一個數(shù)學函數(shù),我們希望了解他的圖像,這個時候使用python 的matplotlib就可以幫助我們,下面這篇文章主要介紹了利用Python?Matlab繪制曲線圖的相關資料,需要的朋友可以參考下
    2021-12-12
  • Python?Celery定時任務詳細講解

    Python?Celery定時任務詳細講解

    這篇文章主要介紹了Python?Celery定時任務詳細講解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • python生成png的方法

    python生成png的方法

    本文主要介紹了python生成png的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Python采集C站高校信息實戰(zhàn)示例

    Python采集C站高校信息實戰(zhàn)示例

    這篇文章主要為大家介紹了Python采集C站高校信息實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05

最新評論

伊金霍洛旗| 察隅县| 屏东市| 黎平县| 饶阳县| 任丘市| 肇州县| 凌云县| 辽宁省| 随州市| 宁蒗| 洪江市| 泗洪县| 宜宾县| 洪洞县| 临海市| 邓州市| 麻江县| 永平县| 沧源| 固原市| 民和| 额尔古纳市| 东乌珠穆沁旗| 博乐市| 靖安县| 怀化市| 监利县| 东台市| 哈巴河县| 高邑县| 丹巴县| 安溪县| 武川县| 甘德县| 凤庆县| 平凉市| 永福县| 贵阳市| 洪江市| 会东县|