使用 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 建構函式的全面示例。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP