[英]“OSError: [Errno 2] No such file or directory” for an existing file
我試圖遍歷某些目錄,我必須返回文件夾的總大小。 但是,我得到這個錯誤
OSError: [Errno 2] No such file or directory:
運行代碼中的函數后,獲取我的文件夾中子目錄之一中的文件之一。 即使我的函數遍歷一個文件夾,為什么該錯誤仍然會發生,所以該文件必須存在?
def get_size(folder):
folder_size = 0
for (path, dirs, files) in os.walk(folder):
for file in files:
filename = os.path.join(path, file)
folder_size += os.path.getsize(filename)
return folder_size
行走過程中此錯誤的可能原因是遇到“懸掛”符號鏈接,即鏈接目標不存在。
要變通解決此問題,請決定要使用懸垂鏈接做什么:
os.path.islink
來檢查文件是否為鏈接。 lstat
而不是stat
,這lstat
鏈接的大小作為目標的長度,而不是嘗試解析鏈接。 您應該將os.path.getsize(filename)
替換為os.lstat(filename).st_size
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.