Python-Skript zum Finden von Dateinamen und Verzeichnissen mit Nicht-Standard-Zeichen

Dieses Skript gibt rekursiv Datei- und Verzeichnisnamen aus, die Zeichen in ihrem Namen haben, die weder zum Unicode-Block Basic Latin noch zum Latin-1-Supplement-Block gehören.

find_invalid_filenames.py
#!/usr/bin/env python3
import os
import argparse

def is_valid_char(c):
    """Prüfen, ob ein Zeichen innerhalb der Unicode-Blöcke Basic Latin oder Latin-1 Supplement liegt."""
    return '0000' <= f"{ord(c):04x}" <= '00ff'

def contains_invalid_chars(name):
    """Prüfen, ob ein Zeichenfolge Zeichen außerhalb von Basic Latin oder Latin-1 Supplement enthält."""
    return any(not is_valid_char(c) for c in name)

def check_directory(path):
    """Rekursiv Verzeichnisse und Dateien auf ungültige Zeichen in ihren Namen prüfen."""
    for root, dirs, files in os.walk(path):
        for name in dirs + files:
            if contains_invalid_chars(name):
                print(os.path.join(root, name))

def main():
    parser = argparse.ArgumentParser(description="Prüfen auf Dateien und Verzeichnisse mit ungültigen Zeichen in ihren Namen.")
    parser.add_argument('path', type=str, help="Der Pfad zum zu prüfenden Verzeichnis.")

    args = parser.parse_args()

    if not os.path.isdir(args.path):
        print(f"Der Pfad {args.path} ist kein gültiges Verzeichnis.")
        return

    check_directory(args.path)

if __name__ == "__main__":
    main()

Ähnliche Beiträge nach Kategorie: Python