[PYTHON] Durchsuchen Sie das angegebene Verzeichnis rekursiv, um die Datei anzuzeigen

Implementiert mit os.walk ()

import argparse
import os


def find_all_files(directory):
    for root, dirs, files in os.walk(directory):
        yield root
        for file in files:
            yield os.path.join(root, file)


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "directory", type=str, help="directory that you hope to look into."
    )
    parser.add_argument(
        "-e", "--extension", type=str, help="specify files with extension"
    )
    parser.add_argument("-c", "--cat", help="cat the file", action="store_true")
    parser.add_argument("-w", "--wc", help="wc the file", action="store_true")
    args = parser.parse_args()

    for file in find_all_files(args.directory):
        if args.extension:
            extension = file.split(".")[-1]
            if extension != args.extension:
                continue

        if args.wc:
            os.system("wc " + file)
        else:
            print(file)

        if args.cat:
            print("##### HEAD OF THE FILE #####\n\n")
            for line in open(file):
                print(line, end="")
            print("##### END OF THE FILE #####\n\n")


if __name__ == "__main__":
    main()

Wie benutzt man

$ python find_all_files.py --help
usage: find_all_files.py [-h] [-e EXTENSION] [-c] [-w] directory

positional arguments:
  directory             directory that you hope to look into.

optional arguments:
  -h, --help            show this help message and exit
  -e EXTENSION, --extension EXTENSION
                        specify files with extension
  -c, --cat             cat the file
  -w, --wc              wc the file

Sie können rekursiv nach .py-Dateien im angegebenen Verzeichnis suchen, um deren gesamten Inhalt anzuzeigen, indem Sie folgende Schritte ausführen:

python find_all_files.py directory -e py -c

Referenzierte Site

https://qiita.com/suin/items/cdef17e447ceeff6e79d

Recommended Posts

Durchsuchen Sie das angegebene Verzeichnis rekursiv, um die Datei anzuzeigen
Suchen Sie den Dateinamen einschließlich des angegebenen Wortes und der angegebenen Erweiterung im Verzeichnis
Ich möchte den Dateinamen von DataLoader sehen
Dateizugriff unter dem Verzeichnis
Verwendung des Befehls grep zum rekursiven Durchsuchen von Verzeichnissen und Dateien bis zu einer bestimmten Tiefe
So listen Sie Dateien im angegebenen Verzeichnis auf (Suche nach mehreren Bedingungen / Unterverzeichnissen)
So sehen Sie den Inhalt der ipynb-Datei des Jupyter-Notizbuchs
Python> __init __. Py> Erforderlich, um das angegebene Verzeichnis als Paket zu behandeln (leere Datei ist akzeptabel)
Setzen Sie das Datum der letzten Änderung der untergeordneten Datei auf das Änderungsdatum des übergeordneten Verzeichnisses
Skript zum Generieren eines Verzeichnisses aus einer JSON-Datei
Suchen Sie nach Dateien mit der angegebenen Erweiterung
Rufen Sie den Pfad zur systemd-Einheitendatei ab
[Python] Lesen Sie die angegebene Zeile in der Datei
Ich möchte den Pfad des Verzeichnisses abrufen, in dem die laufende Datei gespeichert ist.
Lesen aller in * .py enthaltenen Klassen in dem von Python angegebenen Verzeichnis
Extrahieren Sie nur den Dateinamen mit Ausnahme des Verzeichnisses im Verzeichnis
Löschen Sie alle pyc-Dateien im angegebenen Verzeichnis
Durchsuchen Sie rekursiv alle Dateien mit mehreren angegebenen Erweiterungen
Speichern Sie das Objekt in einer Datei mit pickle
So lesen Sie Dateien in verschiedenen Verzeichnissen
Speichern Sie Suchergebnisse auf Twitter in CSV.
Verwenden Sie Pandas, um nur die angegebenen Zeilen des Datenrahmens in die Excel-Datei zu schreiben
[Linux] Dateisuche
Geben Sie für jede Datei die angegebene Tabelle der Oracle-Datenbank in Python in Excel aus
Vorlage des Python-Skripts zum Lesen des Inhalts der Datei
So löschen Sie die angegebene Zeichenfolge mit dem Befehl sed! !! !!
Wie Sie das aktuelle Verzeichnis in Python in Blender kennen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Lesen Sie die XML-Datei anhand des Python-Tutorials
Setzen Sie die angegebene Spalte von QTableWidget auf ReadOnly StyledItemDelegate
Ändern Sie die Größe des Bildes auf die angegebene Größe und schwärzen Sie die Ränder
So erstellen Sie eine neue Datei, wenn die angegebene Datei nicht vorhanden ist - schreiben Sie, wenn die Datei vorhanden ist