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.
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.
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)
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é.
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.
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.
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: 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.
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
Recommended Posts