Wenn die Anzahl der Ordner und die Hierarchie groß sind, werden Dateien versehentlich dupliziert, und ähnliche und nicht ähnliche Dateien verbleiben in der Hierarchie, was zu Problemen beim Suchen oder Bearbeiten führen kann.
Als ich eine Textdatei, die ich eine Weile verwendet hatte, zu einer Notebook-App brachte, die die Hierarchie mechanisch verwalten kann, und sie zu einer anderen Notebook-App brachte, gab es anscheinend mehrere Dateien mit demselben Namen. Zu diesem Zeitpunkt habe ich ein Programm zum Erstellen einer Dateiliste geschrieben, damit es einfacher ist, die gleichnamige Datei zu finden, um sie zu bereinigen.
So ein Ort. Sie können auch eine vollständige Liste (in der Reihenfolge des Dateinamens aufgelistet) ausgeben und visuell bestimmen, welche markiert und welche nicht markiert sind, aber ähnliche Namen haben. Ich tat. (Wenn es dir nicht gefällt, schau dir einfach die markierten an.)
Die Liste wird erstellt, indem der Dateiname und der Ordnername durch ":" getrennt werden. In aufsteigender Reihenfolge der Dateinamen anordnen. Wenn es denselben Dateinamen gibt (vor der Erweiterung), fügen Sie am Ende "\ ***** duplizierte Datei ?? ****" hinzu. Der zu untersuchende Ordner wird mit dem aktuellen Ordner als oberster Ebene durchsucht. Der Dateiname der Ausgabeliste lautet "out.txt", und der UTF-8-Zeilenumbruch ist nur LF. Ändern Sie ihn daher entsprechend Ihrer Umgebung.
Ich bin noch neu in Python, also habe ich es geschafft, indem ich Informationen von verschiedenen Websites kombiniert habe. Ihre Meinungen und Professoren sind willkommen.
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