簡體   English   中英

現有文件的“ OSError:[Errno 2]沒有這樣的文件或目錄”

[英]“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM