Python-Skript zum rekursiven Finden der größten Dateien mit gegebener Erweiterung
Dieses einfache Python-Skript listet alle Dateien sortiert nach Dateigröße im angegebenen Verzeichnis rekursiv auf. Sie müssen ein -e/--extension-Argument angeben, um nur bestimmte Dateinamenserweiterungen zu berücksichtigen. Dateinamenserweiterungen werden case-insensitiv verglichen.
list_largest_files.py
#!/usr/bin/env python3
import os
import argparse
def convert_size(size_bytes):
""" Convert byte size to a human-readable format. """
for unit in ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB']:
if size_bytes < 1024:
return f"{size_bytes:.2f}{unit}"
size_bytes /= 1024
return f"{size_bytes:.2f}YB"
def get_files_with_extensions(root_dir, extensions):
""" Recursively find files with the given extensions in the directory. """
for root, dirs, files in os.walk(root_dir):
for file in files:
if any(file.lower().endswith(ext.lower()) for ext in extensions):
full_path = os.path.join(root, file)
size = os.path.getsize(full_path)
yield full_path, size
def main():
parser = argparse.ArgumentParser(description="List files with specific extensions sorted by size.")
parser.add_argument("directory", type=str, help="Directory to search")
parser.add_argument("-e", "--extension", type=str, action='append', help="File extension to filter by", required=True)
args = parser.parse_args()
files = list(get_files_with_extensions(args.directory, args.extension))
files.sort(key=lambda x: x[1])
for file, size in files:
print(f"{convert_size(size)} - {file}")
if __name__ == "__main__":
main()Verwendungsbeispiel: Größte Python-Dateien finden:
list_largest_py.sh
python ListLargestFiles.py -e py .Verwendungsbeispiel: (Einige Arten von) Filmen finden:
list_largest_movies.sh
python ListLargestFiles.py -e mov -e avi -e mkv -e mp4 ~/NextcloudBeispielausgabe:
list_largest_example_output.txt
[...]
108.81MB - /home/uli/Nextcloud/Google Fotos/20220925_151542.mp4
117.92MB - /home/uli/Nextcloud/Google Fotos/20220925_151958.mp4
237.51MB - /home/uli/Nextcloud/Google Fotos/20220911_115209.mp4
265.02MB - /home/uli/Nextcloud/Google Fotos/20220905_151716.mp4
317.36MB - /home/uli/Nextcloud/Google Fotos/20220912_124906.mp4
431.06MB - /home/uli/Nextcloud/Google Fotos/20220921_153051.mp4Check out similar posts by category:
Python
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow