[Python] Analyser le dossier, y compris les sous-dossiers → Exporter la liste des fichiers au format CSV

Ceci est mon premier message posté. J'ai récemment commencé à étudier Python, et bien que j'aie encore des connaissances timides, j'aimerais le publier sous forme de mémorandum. Je vous serais reconnaissant si vous pouviez vous sentir libre de commenter tout conseil.

Chose que tu veux faire

J'utilise le dossier partagé d'un service dans un environnement d'entreprise, mais la capacité est faible et il se remplit rapidement. Je veux visualiser le type de fichiers occupant de l'espace dans ce dossier. En règle générale, l'utilisation de logiciels libres est NG, donc après avoir étudié, j'ai créé un outil moi-même.

Ce que j'ai étudié

1. 1. Analyse de répertoire avec module de marche

Vous pouvez facilement scanner l'intérieur d'un dossier avec os.walk. (Dans le cas de VBA, il était nécessaire d'effectuer un traitement récursif, mais il peut être facilement écrit en utilisant walk)

Comment utiliser

for curDir, dirs, files in os.walk(target_folder): Pour les dossiers décrits dans target_folder_p ci-dessus, stockez les fichiers dans des fichiers, les sous-dossiers dans des dirs et les dossiers dans lesquels chacun est stocké dans curDir. Après cela, pour l'imbrication dans celui de, les fichiers et les répertoires sont développés et le traitement est effectué.

Exemple d'utilisation:

python


import os

target_folder = r"C:\Users\aaa\Desktop\Dossier photo"

for curDir, dirs, files in os.walk(target_folder): 
    for a_file in files:
        print(f"{a_file}Est un dossier:{curDir}Il est stocké au format.")

résultat

Mandarine.jpg est un dossier: C:\Users\aaa\Desktop\Il est stocké dans le dossier photo.
pomme.jpg est un dossier: C:\Users\aaa\Desktop\Il est stocké dans le dossier photo.
banane.jpg est un dossier: C:\Users\aaa\Desktop\Il est stocké dans le dossier photo.
chien.jpg est un dossier: C:\Users\aaa\Desktop\Dossier photo\Stocké dans les animaux.
Chat.jpg est un dossier: C:\Users\aaa\Desktop\Dossier photo\Stocké dans les animaux.

2. Sortie dans un fichier csv

Pour la sortie en csv, ouvrez le fichier avec la fonction open, convertissez-le en csv avec csv.writer et écrivez-le avec writerow ou writerows.

Exemple d'écriture

python


import csv

avec open (nom du fichier de sortie (chemin complet),Mode lecture, 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"]])

résultat: キャプチャ.PNG write row écrit une ligne écrire des lignes écrire plusieurs lignes à la fois

** Mode lecture (deuxième argument de la fonction ouverte) **

J'étudie toujours la nouvelle ligne optionnelle. Cependant, si cela est omis, les données seront ignorées d'une ligne lors de leur sortie.

Livrables

Exporter la liste des fichiers.py


import os
import pathlib
import csv
from tkinter import filedialog

#Spécifiez le dossier à lire
F_path = os.path.dirname(__file__)
target_folder = filedialog.askdirectory(initialdir=F_path)
target_folder_path = pathlib.Path(target_folder)

filedata = []

#Opérer dans le dossier
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)])

#Afficher le résultat de la lecture
print("No.Nom du fichier Extension Taille du fichier (octet) Chemin complet")

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

#Confirmation de la destination de sortie du fichier
print("La liste de fichiers est sortie au format CSV au niveau supérieur du dossier de lecture.\n Entrez le nom du fichier de sortie (aucune extension requise)")
print("(Si vous ne voulez pas sortir, laissez vide et appuyez sur ENTER)")
csv_name = input("Nom du fichier de sortie:")

if csv_name == "":
    print("N'a pas sorti le fichier.")

else:
    #Sortir le résultat de la lecture dans un fichier
    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.", "nom de fichier","extension", "Taille du fichier (octet)","chemin complet"])
        CSV_file.writerows(filedata)

    print(f"Le fichier suivant a été produit.=> {output_csv_path}")

résultat

No.Nom du fichier Extension Taille du fichier (octet) Chemin complet
1 guerre Takeko aux champignons.jpg        .jpg           118437          C:\Users\aaa\Desktop\Dossier photo\Guerre de Takeko aux champignons.jpg
2 Takenoko no Sato.jpg        .jpg           93003          C:\Users\aaa\Desktop\Dossier photo\Takenoko no Sato.jpg
3 chat 1.jpg        .jpg           31115          C:\Users\aaa\Desktop\Dossier photo\animal\Chat 1.jpg
4 chat 2.jpg        .jpg           21160          C:\Users\aaa\Desktop\Dossier photo\animal\Chat 2.jpg
La liste de fichiers est sortie au format CSV au niveau supérieur du dossier de lecture.
Entrez le nom du fichier de sortie (aucune extension requise)
(Si vous ne voulez pas sortir, laissez vide et appuyez sur ENTER)
Nom du fichier de sortie: sortie
Le fichier suivant a été produit.=> C:\Users\aaa\Desktop\Dossier photo\output.csv

キャプチャ.PNG

Autres mémorandums / mémos

Recommended Posts

[Python] Analyser le dossier, y compris les sous-dossiers → Exporter la liste des fichiers au format CSV
Différentes façons de lire la dernière ligne d'un fichier csv en Python
Modèle de script python pour lire le contenu du fichier
J'ai essayé de toucher un fichier CSV avec Python
Essayez d'obtenir la liste des fonctions du paquet Python> os
[Python] Ouvrez le fichier csv dans le dossier spécifié par pandas
[Python] Ecrire dans un fichier csv avec Python
Sortie vers un fichier csv avec Python
À propos de la liste de base des bases de Python
Python - Le moyen le plus élégant de lire des lignes de fichier dans une liste
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
Après avoir appelé le fichier Shell sur Python, convertissez CSV en Parquet.
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche
[Python] Comment convertir un fichier db en csv
Changer la longueur des chaînes csv Python
[Python] Convertit les délimiteurs de fichier csv en délimiteurs de tabulation
Vérifier l'existence du fichier avec python
Python> sys.path> Liste de chaînes indiquant le chemin pour rechercher des modules
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
Comment mettre un numéro de ligne au début d'un fichier CSV
[Python] Comment lire le fichier csv (méthode read_csv du module pandas)
Lire Python csv et exporter vers txt
Python amateur tente de résumer la liste ①
Résumé de l'utilisation de la liste Python
Script Python qui génère tous les enregistrements de la table Oracle dans un fichier CSV
[Python] Récupère le code de caractère du fichier
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
[Python] Maîtrisez la lecture des fichiers csv. Liste des principales options pour pandas.read_csv.
[Python3] Comprendre les bases des opérations sur les fichiers
Comment passer le résultat de l'exécution d'une commande shell dans une liste en Python
Script Python pour obtenir une liste d'exemples d'entrée pour le concours AtCoder
Comment obtenir une liste de fichiers dans le même répertoire avec python
Comment lire un fichier CSV avec Python 2/3
[python] Vérifier les éléments de la liste tous, tous
[Note] Exportez le html du site avec python.
[Introduction à Udemy Python3 + Application] 19. Copie de la liste
Écriture de journaux dans un fichier CSV (Python, langage C)
[Algorithm x Python] Comment utiliser la liste
Comment obtenir les fichiers dans le dossier [Python]
Exporter la version Python3 OpenCV KeyPoint dans un fichier
Liste de code Python à déplacer et à mémoriser
Convertir le code de caractère du fichier avec Python3
amateur python tente de résumer la liste ②
Évaluation de la vitesse de sortie du fichier CSV en Python
Obtenez la date de mise à jour du fichier de mémorandum Python.
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
Sortie de la table spécifiée de la base de données Oracle en Python vers Excel pour chaque fichier
Comment compter le nombre d'occurrences de chaque élément de la liste en Python avec poids
Convertir les informations financières de toutes les sociétés cotées des 5 dernières années en fichier CSV
Un moyen simple de vérifier la source des modules Python
[Python] Comment supprimer les valeurs en double de la liste
Le mur lors du passage du service Django de Python 2.7 à la série Python 3
Comment obtenir le nombre de chiffres en Python
Liste des articles liés à l'optimisation par Python vers Docker
[Python] Obtenez le chemin d'accès officiel du fichier de raccourci (.lnk)
[python] Récupère la liste des classes définies dans le module
Comment écrire un type liste / dictionnaire de Python3
Lisez le fichier xml en vous référant au didacticiel Python