Si le nombre de dossiers et la hiérarchie sont importants, les fichiers sont dupliqués par inadvertance et des fichiers similaires et non similaires restent dans la hiérarchie, ce qui a tendance à poser des problèmes lors de la recherche ou de la modification.
En fait, lorsque j'ai pris un fichier texte que j'utilisais depuis un certain temps dans une application de bloc-notes capable de gérer la hiérarchie mécaniquement et que je l'ai transféré vers une autre application de bloc-notes, il semblait qu'il y avait plusieurs fichiers avec le même nom. À ce moment, j'ai écrit un programme pour créer une liste de fichiers afin qu'il soit plus facile de trouver le fichier avec le même nom afin de le nettoyer.
Un tel endroit. Vous pouvez également générer une liste complète (classée par ordre de nom de fichier) et déterminer visuellement ceux qui sont marqués et ceux qui ne sont pas marqués mais qui ont des noms similaires. J'ai fait. (Si vous ne l'aimez pas, regardez simplement ceux marqués)
La liste est créée en séparant le nom du fichier et le nom du dossier par ":". Disposer par ordre croissant des noms de fichiers. S'il y a le même nom de fichier (avant l'extension), ajoutez "\ ***** fichier dupliqué ?? ****" à la fin. Le dossier à examiner est recherché avec le dossier actuel comme niveau supérieur. Le nom de fichier de la liste de sortie est "out.txt", et le saut de ligne UTF-8 est uniquement LF, veuillez donc le modifier en fonction de votre environnement.
Je suis encore nouveau dans Python, donc je l'ai fait en combinant des informations provenant de divers sites Web. Vos opinions et professeurs sont les bienvenus.
ListDupFile.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import codecs
import os
oList = []
odata = ""
prev = "...."
for root, dirs, files in os.walk(u'.'):
for file_ in files:
filename = file_
itm = filename + u' : ' + root
oList.append(itm)
oList.sort()
for data_ in oList:
wList = data_.split('.')
if prev in wList[0] :
data_ = data_ + " ***** duplicated file?? ****"
prev = wList[0]
odata = odata + data_ + "\n"
fout = codecs.open(u'out.txt',"w","utf-8")
fout.write(odata)
fout.close()
Recommended Posts