使用 Python 查詢目錄中最大的檔案


在許多情況下,查詢最大的檔案可能很有幫助,包括查詢硬碟驅動器上最大的檔案以騰出空間,或者檢查目錄中檔案的尺寸分佈。可以使用 Python 指令碼找到目錄中最大的檔案,本文將對此進行介紹。

演算法

  • 匯入 os 模組。

  • 定義一個名為 find_largest_file 的函式,該函式以目錄作為輸入。

  • 將名為 largest_file 的變數初始化為 None,並將名為 largest_size 的變數初始化為 0。

  • 使用 os.walk 遞迴遍歷目錄樹,從根目錄開始。

  • 對於遇到的每個檔案,使用 os.path.getsize 獲取檔案大小,並將其與當前最大大小進行比較。

  • 如果檔案大小大於當前最大大小,則更新最大大小和最大檔案變數。

  • 返回最大檔案的路徑。

示例 1:列印目錄中所有檔案的大小

import os
directory = "./test"
for root, dirs, files in os.walk(directory):
   for file in files:
      file_path = os.path.join(root, file)
      file_size = os.path.getsize(file_path)
      print(f"{file_path}: {file_size} bytes")

輸出

您需要建立一個名為“test”的資料夾,並在其中儲存一些檔案/資料夾。輸出將取決於您在系統上儲存的檔案

./test\Krz_Earthwork_Clean.jpg: 291048 bytes
./test\Krz_Earthwork_Folded.jpg: 3081472 bytes
./test\Krz_Earthwork_Xerox.jpg: 5871915 bytes
./test\Krz_EquusOils.jpg: 1374387 bytes

此示例使用 os.walk 遞迴遍歷目錄樹,從根目錄開始。對於遇到的每個檔案,它使用 os.path.getsize 獲取檔案大小,並以位元組為單位列印檔案路徑和大小。

示例 2:使用 Lambda 函式查詢目錄中最大的檔案

import os

directory = "./test"
largest_file = max(
   (os.path.join(root, file) for root, dirs, files in os.walk(directory) for file in files),
   key=os.path.getsize
)
print(largest_file)

輸出

./test\Krz_Earthwork_Xerox.jpg

此示例使用 lambda 函式和內建的 max 函式來查詢目錄中最大的檔案。它使用 os.walk 遞迴遍歷目錄樹,從根目錄開始。它建立一個生成器表示式,該表示式生成目錄中每個檔案的路徑,然後將該生成器表示式傳遞給 max 函式。max 函式使用 key 引數按大小對檔案進行排序並返回最大的檔案。

import os
def find_largest_file(directory):
   largest_file = None
   largest_size = 0
   for root, dirs, files in os.walk(directory):
      for file in files:
         file_path = os.path.join(root, file)
         file_size = os.path.getsize(file_path)
         if file_size > largest_size:
            largest_size = file_size
   largest_file = file_path
   return largest_file

directory = "./test"
largest_file = find_largest_file(directory)
if largest_file is not None:
   print(f"The largest file in {directory} is: {largest_file}")
else:
   print(f"No files found in {directory}")

輸出

The largest file in ./test is: ./test\Krz_Earthwork_Xerox.jpg

此示例定義了一個名為 find_largest_file 的函式,該函式以目錄作為輸入。它將名為 largest_file 的變數初始化為 None,並將名為 largest_size 的變數初始化為 0。它使用 os.walk 遞迴遍歷目錄樹,從根目錄開始。對於遇到的每個檔案,它使用 os.path.getsize 獲取檔案大小,並將其與當前最大大小進行比較。如果檔案大小大於當前最大大小,則更新最大大小和最大檔案變數。最後,它返回最大檔案的路徑。

然後,該示例使用目錄作為輸入呼叫 find_largest_file 函式,並列印最大檔案的路徑(如果找到)。如果在目錄中找不到任何檔案,則列印一條訊息指示這一點。

應用

  • 識別硬碟驅動器上最大的檔案以釋放空間

  • 分解目錄中檔案的尺寸分佈

  • 自動化檔案管理任務,例如刪除大型檔案或將其移動到其他位置

結論

從釋出目錄內容到使用 lambda 函式和內建 max 函式確定最大的檔案,本文介紹了使用 Python 查詢目錄中最大檔案的方法,並運行了一些程式碼示例,這些示例突出了工作的各個方面。此外,我們討論了查詢目錄中最大檔案的一些應用程式,例如查詢大型檔案以騰出空間或檢查目錄中檔案的尺寸分佈,以及如何使用 os.walk 和 os.path.getsize 建構函式的全面示例。

更新於: 2023年8月21日

928 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.