如何解決Python:報錯[Errno 2]No such file or directory問題
Python報錯[Errno 2]No such file or directory
問題現(xiàn)象
Python文件讀取操作時,系統(tǒng)無法找到指定路徑的文件或目錄。其核心原因可歸結(jié)為以下三點:
- 路徑拼寫錯誤(如大小寫不一致、特殊字符未轉(zhuǎn)義)
- 工作目錄與相對路徑不匹配(常見于IDE或腳本調(diào)用場景)
- 文件實際不存在(包括擴展名錯誤或文件被移動)
其中,第二種為最常見的原因。主要為項目中調(diào)用.py文件中存在相對路徑,而在Pycharm中運行與終端中運行可能結(jié)果不同,一個報錯一個不報錯。
快速解決方案
1.使用絕對路徑
直接指定文件的完整路徑(適用于固定環(huán)境):
with open("/home/user/project/data/file.txt") as f: # Linux示例 pass
注意Windows路徑需處理反斜杠轉(zhuǎn)義(如r"C:\Users\file.txt"
或雙反斜杠)。
2.動態(tài)獲取腳本所在目錄(推薦)
通過__file__
屬性定位腳本的真實路徑,避免工作目錄干擾:
import os # 當前文件的父目錄 script_dir = os.path.dirname(os.path.abspath(__file__)) # 當前文件的父目錄的父目錄(我的此處為項目目錄) project_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 根據(jù)自己的需求選擇 file_path = os.path.join(script_dir, "data/file.txt") # 或者 file_path = os.path.join(project_dir, "data/file.txt")
此方法在多級目錄項目中尤為可靠。
其他原因排查
1.驗證文件路徑與名稱
- 檢查路徑字符串的拼寫(包括英文冒號、斜杠方向等),例如
data\file.txt
在Linux中需改為data/file.txt
1 - 確認文件擴展名是否匹配(如
.txt
與.csv
的區(qū)別) - 使用
os.path.exists()
函數(shù)驗證路徑是否存在:
import os print(os.path.exists("your_file_path")) # 返回True則路徑有效
2.理解工作目錄與相對路徑
- 執(zhí)行腳本時,系統(tǒng)以當前工作目錄為相對路徑起點,而非腳本所在目錄3
- 通過
os.getcwd()
獲取當前工作目錄,若與預期不符: - 在IDE(如VSCode)中設置工作目錄(調(diào)試配置項)
- 使用
os.chdir()
動態(tài)修改工作目錄
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Python成功解決讀文件出現(xiàn):IOError:?[Errno?0]?Error的錯誤
- Python報錯:OSError:?[Errno?22]?Invalid?argument解決方案及應用實例
- 解決python訓練模型報錯:BrokenPipeError:?[Errno?32]?Broken?pipe
- 解決Python獲取文件提示找不到指定路徑can‘t?open?file?'area.py':[Errno?2]?No?such?file?or?directory
- 解決Python保存文件名太長OSError: [Errno 36] File name too lon
- python錯誤提示:Errno?2]?No?such?file?or?directory的解決方法
相關文章
基于Python采集爬取微信公眾號歷史數(shù)據(jù)
這篇文章主要介紹了基于Python采集爬取微信公眾號歷史數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11Python hashlib庫數(shù)據(jù)安全加密必備指南
這篇文章主要為大家介紹了Python hashlib庫數(shù)據(jù)安全加密的使用實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01詳細介紹pandas的DataFrame的append方法使用
這篇文章主要介紹了詳細介紹pandas的DataFrame的append方法使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-0715個應該掌握的Jupyter Notebook使用技巧(小結(jié))
這篇文章主要介紹了15個應該掌握的Jupyter Notebook使用技巧(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09Python實現(xiàn)模擬分割大文件及多線程處理的方法
這篇文章主要介紹了Python實現(xiàn)模擬分割大文件及多線程處理的方法,涉及Python文件讀取、分割及多線程相關操作技巧,需要的朋友可以參考下2017-10-10python腳本監(jiān)控logstash進程并郵件告警實例
這篇文章主要介紹了python腳本監(jiān)控logstash進程并郵件告警實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04