Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen

Einführung

Ich habe es wieder geschafft, um Python zu üben.

Softwarebeschreibung

Gibt den absoluten Pfad und die Größe einer Datei mit einer Kapazität aus, die größer als die im Terminal festgelegte Kapazität ist. Die Optionen sind wie folgt

---- start: Sie können den Startpunkt der Dateisuche festlegen ---- sort: Ausgabe von großen Dateien ---- mehr: Sie können die Ausgangsreferenzkapazität einstellen ---- grep: Es können nur Pfade angezeigt werden, die die angegebene Zeichenfolge enthalten

Umgebung

Ubuntu18.04LTS Python3.6.9 vim

Quellcode

import argparse
import os


class Measure:
    def __init__(self, sort=None, more=None, grep=None):
        self.sort = sort

        if more is None:
            self.more = 1024 * 1024
        else:
            self.more = more

        self.grep = grep
        self.result = []

    def get_list(self):
        path_list = []
        dir_list = []
        for content in os.listdir():
            if os.path.isfile(content):
                path_list.append(content)
            elif os.path.isdir(content):
                dir_list.append(content)

        return path_list, dir_list

    def measure(self, path_list):
        for path in path_list:
            if os.path.getsize(path) > self.more:
                self.result.append(
                        (os.path.abspath(path), os.path.getsize(path))
                    )

    def get_deeper(self, dir_list):
        for dire in dir_list:
            if os.path.islink(dire):
                continue
            os.chdir(dire)
            self.main()
            os.chdir('../')

    def main(self):
        path_list, dir_list = self.get_list()
        self.measure(path_list)
        self.get_deeper(dir_list)

    def search(self, word):
        for i in self.grep:
            if word.find(i) >= 0:
                return word
            else:
                return
    
    def convert_unit(self, capacity):
        unit = {0: 'B', 1: 'KB', 2: 'MB', 3: 'GB', 4: 'TB'}
        count = 0
        while capacity // 1024:
            capacity /= 1024
            count += 1

        capacity = round(capacity)
        capacity = str(capacity) + unit[count]
        return capacity 

    def show_result(self):
        if self.sort:
            self.result = sorted(self.result, key=lambda z: z[1], reverse=True)
        for path, capacity in self.result:
            if self.grep:
                path = self.search(path)
            if path is None:
                continue
            capacity = self.convert_unit(capacity)
            print(path, capacity)


def get_parser():
    parser = argparse.ArgumentParser(description='search file\'s capacity')

    parser.add_argument('--start', help='')
    parser.add_argument('--sort', action='store_true', help='')
    parser.add_argument('--more', type=int, help='')
    parser.add_argument('--grep', nargs='*', help='')

    return parser.parse_args()


def cli():
    args = get_parser()

    if args.start:
        try:
            os.chdir(args.start)
        except FileNotFoundError:
            print(args.start , 'is not file or directory.')
            return

    m = Measure(args.sort, more=args.more, grep=args.grep)
    m.main()
    m.show_result()


if __name__ == '__main__':
    cli()

abschließend

Ich werde jederzeit verschiedene Funktionen hinzufügen, z. B. eine Funktion zum Anzeigen des letzten Änderungsdatums der Datei und eine Funktion zum Speichern des Ergebnisses in einer CSV-Datei.

Recommended Posts

Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
So überprüfen Sie die Speichergröße einer Variablen in Python
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
Ich habe eine Funktion erstellt, um das Modell von DCGAN zu überprüfen
Ich habe ein Pay-Management-Programm in Python erstellt!
Ich habe ein Skript erstellt, um zu überprüfen, ob an der angegebenen Position der JSON-Datei in Python Englisch eingegeben wird.
Ich habe ein Caesar-Kryptografieprogramm in Python erstellt.
Ich habe eine Funktion erstellt, um die Bewegung eines zweidimensionalen Arrays (Python) zu sehen.
Ich möchte eine Datei mit Python zufällig testen
Ich habe in Python ein Programm erstellt, das die 1-Minuten-Daten von FX auf eine beliebige Zeit (1 Stunde usw.) ändert.
Verschiedene Möglichkeiten, die letzte Zeile einer CSV-Datei in Python zu lesen
Ich habe einen Appdo-Befehl erstellt, um Befehle im Kontext der App auszuführen
Ich habe ein Skript erstellt, das das aktive Fenster mit win32gui von Python aufzeichnet
Ändern Sie das Standardausgabeziel in eine Datei in Python
[Hinweis] Import von Dateien in das übergeordnete Verzeichnis in Python
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
Überprüfen Sie das Verhalten des Zerstörers in Python
Ich habe mit Python eine Einstellungsdatei erstellt
Ich habe versucht, ein Programm zu erstellen, um die Fehlersuche von Saiseriya zu lösen (Hinweis)
So bestimmen Sie die Existenz eines Selenelements in Python
Ich habe ein Programm erstellt, das die Fehlersuche in Sekunden löst
Ich habe den Code geschrieben, um den Brainf * ck-Code in Python zu schreiben
Lesen Sie die Datei in Python mit einem relativen Pfad aus dem Programm
Ich habe den Befehl gegeben, einen farbenfrohen Kalender im Terminal anzuzeigen
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Ich habe eine Klasse erstellt, um das Analyseergebnis von MeCab in ndarray mit Python zu erhalten
Ein Programm, das die für iOS-App-Symbole in Python erforderliche Bildgröße automatisch ändert
Ich habe eine Funktion zum Trimmen des Bildes von Python openCV erstellt. Verwenden Sie sie daher bitte.
Ich schrieb einen Test in "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren".
Ich habe eine Python-Wörterbuchdatei für Neocomplete erstellt
Ich habe eine Webanwendung in Python erstellt, die Markdown in HTML konvertiert
[Python] Ein Programm, das die Anzahl der gepaarten Socken berechnet
Holen Sie sich den Aufrufer einer Funktion in Python
Ich möchte mit Python ein Fenster erstellen
So erstellen Sie eine JSON-Datei in Python
Kopieren Sie die Liste in Python
Ich möchte das Ergebnis von "Zeichenfolge" .split () in Python stapelweise konvertieren
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
Der Dateiname war in Python schlecht und ich war süchtig nach Import
Ich möchte einen Teil der Excel-Zeichenfolge mit Python einfärben
Ich habe ein Skript in Python erstellt, um MDD-Dateien in das Scrapbox-Format zu konvertieren
Ich habe eine Funktion erstellt, um zu überprüfen, ob der Webhook vorerst in Lambda empfangen wird
Ausgabe in Form eines Python-Arrays
Ich habe einen Fehler beim Abrufen der Hierarchie mit MultiIndex von Pandas gemacht
Ich habe versucht, den Höhenwert von DTM in einem Diagramm anzuzeigen
Ich möchte mit Python in eine Datei schreiben
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Ich habe versucht, Trumps Kartenspiel in Python zu implementieren
Ich möchte den Fortschritt in Python anzeigen!
[Python / Jupyter] Übersetzen Sie den Kommentar des in die Zwischenablage kopierten Programms und fügen Sie ihn in eine neue Zelle ein.
Ich habe ein Tool erstellt, um die Ausführungszeit von cron zu schätzen (+ PyPI-Debüt)
So übergeben Sie das Ergebnis der Ausführung eines Shell-Befehls in einer Liste in Python
Wie man eine Benutzergruppe mit Slack-Benachrichtigung erwähnt, wie man die ID einer Benutzergruppe überprüft