[Python] Scannen Sie den Ordner einschließlich der Unterordner → Exportieren Sie die Dateiliste in CSV

Dies ist mein erster Beitrag. Ich habe vor kurzem angefangen, Python zu studieren, und obwohl ich noch halbherziges Wissen habe, möchte ich es als Memorandum veröffentlichen. Ich wäre Ihnen dankbar, wenn Sie sich zu einem Rat frei äußern könnten.

Was du machen willst

Ich verwende den freigegebenen Ordner einer Abteilung in einer Unternehmensumgebung, aber die Kapazität ist gering und füllt sich schnell. Ich möchte visualisieren, welche Art von Dateien Speicherplatz in diesem Ordner belegen. In der Regel ist die Verwendung von freier Software NG. Nach dem Studium habe ich selbst ein Tool erstellt.

Was ich studiert habe

1. 1. Verzeichnisscan mit Walk-Modul

Mit os.walk können Sie problemlos das Innere eines Ordners scannen. (Im Fall von VBA war es notwendig, eine rekursive Verarbeitung durchzuführen, aber es kann leicht mit walk geschrieben werden.)

Wie benutzt man

for curDir, dirs, files in os.walk(target_folder): Speichern Sie für die oben in target_folder_p beschriebenen Ordner die Dateien in Dateien, die Unterordner in Verzeichnissen und die Ordner, in denen sie jeweils in curDir gespeichert sind. Danach werden zum Verschachteln in das für Dateien und Verzeichnisse erweitert und die Verarbeitung durchgeführt.

Anwendungsbeispiel:

python


import os

target_folder = r"C:\Users\aaa\Desktop\Fotoordner"

for curDir, dirs, files in os.walk(target_folder): 
    for a_file in files:
        print(f"{a_file}Ist ein Ordner:{curDir}Es ist gespeichert in.")

Ergebnis

Mandarine.jpg ist ein Ordner: C.:\Users\aaa\Desktop\Es wird im Fotoordner gespeichert.
Apfel.jpg ist ein Ordner: C.:\Users\aaa\Desktop\Es wird im Fotoordner gespeichert.
Banane.jpg ist ein Ordner: C.:\Users\aaa\Desktop\Es wird im Fotoordner gespeichert.
Hund.jpg ist ein Ordner: C.:\Users\aaa\Desktop\Fotoordner\In Tieren gelagert.
Katze.jpg ist ein Ordner: C.:\Users\aaa\Desktop\Fotoordner\In Tieren gelagert.

2. Ausgabe in CSV-Datei

Öffnen Sie für die Ausgabe in csv die Datei mit der Funktion open, konvertieren Sie sie mit csv.writer in csv und schreiben Sie sie mit writerow oder writerows.

Beispiel des Schreibens

python


import csv

mit open (Name der Ausgabedatei (vollständiger Pfad),Lesemodus, newline="") as fo:
    CSV_file = csv.writer(fo)
    CSV_file.writerow(["A1", "B1", "C1", "D1"])
    CSV_file.writerow([["A2", "B2", "C2", "D2"],["A3", "B3", "C3", "D3"]])
    CSV_file.writerows([["A4", "B4", "C4", "D4"],["A5", "B5", "C5", "D5"]])

Ergebnis: キャプチャ.PNG Zeile schreiben schreibt eine Zeile Zeilen schreiben Schreiben Sie mehrere Zeilen gleichzeitig

** Lesemodus (zweites Argument der offenen Funktion) **

Ich studiere immer noch die optionale Newline. Wenn dies jedoch weggelassen wird, werden die Daten bei der Ausgabe um eine Zeile übersprungen.

Ergebnisse

Dateiliste exportieren.py


import os
import pathlib
import csv
from tkinter import filedialog

#Geben Sie den zu lesenden Ordner an
F_path = os.path.dirname(__file__)
target_folder = filedialog.askdirectory(initialdir=F_path)
target_folder_path = pathlib.Path(target_folder)

filedata = []

#Arbeiten Sie im Ordner
for curDir, dirs, files in os.walk(target_folder_path):
    for a_File in files:

        file_size = os.path.getsize(os.path.join(curDir, a_File))
        file_ext = os.path.splitext(a_File)

        filedata.append([len(filedata)+1, a_File,file_ext[1], file_size,os.path.join(curDir, a_File)])

#Leseergebnis anzeigen
print("No.Dateiname Erweiterung Dateigröße (Byte) Vollständiger Pfad")

for i in range(len(filedata)):
    print(f"{filedata[i][0]}     {filedata[i][1]}     {filedata[i][2]}     {filedata[i][3]}     {filedata[i][4]}")

#Bestätigung des Dateiausgabeziels
print("Die Dateiliste wird in CSV auf der obersten Ebene des Leseordners ausgegeben.\n Geben Sie den Namen der Ausgabedatei ein (keine Erweiterung erforderlich).")
print("(Wenn Sie nicht ausgeben möchten, lassen Sie das Feld leer und drücken Sie die EINGABETASTE.)")
csv_name = input("Name der Ausgabedatei:")

if csv_name == "":
    print("Die Datei wurde nicht ausgegeben.")

else:
    #Das Leseergebnis in eine Datei ausgeben
    output_csv_path = os.path.join(target_folder_path, csv_name + ".csv")

    with open(output_csv_path, "w", newline="") as fo:
        CSV_file = csv.writer(fo)
        CSV_file.writerow(["No.", "Dateiname","Erweiterung", "Dateigröße (Byte)","vollständigen Pfad"])
        CSV_file.writerows(filedata)

    print(f"Die folgende Datei wurde ausgegeben.=> {output_csv_path}")

Ergebnis

No.Dateiname Erweiterung Dateigröße (Byte) Vollständiger Pfad
1 Pilz-Takeko-Krieg.jpg        .jpg           118437          C:\Users\aaa\Desktop\Fotoordner\Pilz Takeko Krieg.jpg
2 Takenoko no Sato.jpg        .jpg           93003          C:\Users\aaa\Desktop\Fotoordner\Takenoko no Sato.jpg
3 Katze 1.jpg        .jpg           31115          C:\Users\aaa\Desktop\Fotoordner\Tier\Katze 1.jpg
4 Katze 2.jpg        .jpg           21160          C:\Users\aaa\Desktop\Fotoordner\Tier\Katze 2.jpg
Die Dateiliste wird in CSV auf der obersten Ebene des Leseordners ausgegeben.
Geben Sie den Namen der Ausgabedatei ein (keine Erweiterung erforderlich).
(Wenn Sie nicht ausgeben möchten, lassen Sie das Feld leer und drücken Sie die EINGABETASTE.)
Name der Ausgabedatei: Ausgabe
Die folgende Datei wurde ausgegeben.=> C:\Users\aaa\Desktop\Fotoordner\output.csv

キャプチャ.PNG

Andere Memoranden / Memos

Recommended Posts

[Python] Scannen Sie den Ordner einschließlich der Unterordner → Exportieren Sie die Dateiliste in CSV
Verschiedene Möglichkeiten, die letzte Zeile einer CSV-Datei in Python zu lesen
Vorlage des Python-Skripts zum Lesen des Inhalts der Datei
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Versuchen Sie, die Funktionsliste des Python> os-Pakets abzurufen
[Python] Öffnen Sie die CSV-Datei in dem von Pandas angegebenen Ordner
[Python] Mit Python in eine CSV-Datei schreiben
Ausgabe in eine CSV-Datei mit Python
Informationen zur Grundlagenliste der Python-Grundlagen
Python - Die eleganteste Art, Dateizeilen in eine Liste einzulesen
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
Konvertieren Sie nach dem Aufrufen der Shell-Datei unter Python CSV in Parkett.
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
[Python] So konvertieren Sie eine Datenbankdatei in CSV
Ändern Sie die Länge der Python-CSV-Zeichenfolgen
[Python] Konvertieren Sie CSV-Dateibegrenzer in Tabulatortrennzeichen
Überprüfen Sie die Existenz der Datei mit Python
Python> sys.path> Liste der Zeichenfolgen, die den Pfad für die Suche nach Modulen angeben
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
So setzen Sie eine Zeilennummer am Anfang einer CSV-Datei
[Python] Lesen der CSV-Datei (Methode read_csv des Pandas-Moduls)
Lesen Sie Python csv und exportieren Sie es nach txt
Python Amateur versucht die Liste zusammenzufassen ①
Zusammenfassung der Verwendung der Python-Liste
Python-Skript, das alle Datensätze der Oracle-Tabelle in eine CSV-Datei ausgibt
[Python] Ruft den Zeichencode der Datei ab
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
[Python] Beherrsche das Lesen von CSV-Dateien. Liste der Hauptoptionen für pandas.read_csv.
[Python3] Grundlegendes zu Dateivorgängen
So übergeben Sie das Ergebnis der Ausführung eines Shell-Befehls in einer Liste in Python
Python-Skript zum Abrufen einer Liste von Eingabebeispielen für den AtCoder-Wettbewerb
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Lesen einer CSV-Datei mit Python 2/3
[Python] Checklistenelemente alle, alle
[Hinweis] Exportieren Sie das HTML der Site mit Python.
[Einführung in die Udemy Python3 + -Anwendung] 19. Kopie der Liste
Schreiben von Protokollen in eine CSV-Datei (Python, C-Sprache)
[Algorithmus x Python] Verwendung der Liste
So erhalten Sie die Dateien im Ordner [Python]
Exportieren Sie PythonC Version OpenCV KeyPoint in eine Datei
Liste des zu verschiebenden und zu merkenden Python-Codes
Konvertieren Sie den Zeichencode der Datei mit Python3
Python Amateur versucht die Liste zusammenzufassen ②
Geschwindigkeitsbewertung der Ausgabe von CSV-Dateien in Python
Rufen Sie das Aktualisierungsdatum der Python-Memorandum-Datei ab.
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
Geben Sie für jede Datei die angegebene Tabelle der Oracle-Datenbank in Python in Excel aus
So zählen Sie die Anzahl der Vorkommen jedes Elements in der Liste in Python mit der Gewichtung
Konvertieren Sie die Finanzinformationen aller börsennotierten Unternehmen der letzten 5 Jahre in eine CSV-Datei
Einfache Möglichkeit, die Quelle der Python-Module zu überprüfen
[Python] So entfernen Sie doppelte Werte aus der Liste
Die Wand beim Ändern des Django-Dienstes von Python 2.7 auf Python 3-Serie
So ermitteln Sie die Anzahl der Stellen in Python
Liste der Beiträge zur Optimierung durch Python to Docker
[Python] Ruft den offiziellen Dateipfad der Verknüpfungsdatei ab (.lnk)
[Python] Ruft die Liste der im Modul definierten Klassen ab
So schreiben Sie einen Listen- / Wörterbuchtyp von Python3
Lesen Sie die XML-Datei anhand des Python-Tutorials