ich bin relativ neu in diesen Themengebiet und bräuchte ein wenig Hilfe bei meinem neuen Skript.
Also ich soll ein Skript schreiben das ALLE Laufwerke und alle Unterverzeichnisse, nach Dateien durchsucht mit dem Datentyp *.prt und wenn welche vorhanden sind diese gelöscht werden.
import SearchFiles habe ich nochmal unter dem Hauptorgramm aufgelistet
Bis lang habe ich:
Code: Alles auswählen
import sys, shutil, os, glob,time, fnmatch, win32api
from datetime import datetime, timedelta
import SearchFiles
# Laufwerke finden.
driveslist = win32api. GetLogicalDriveStrings()
ListeMitLaufwerken = driveslist.split('\000') [:-1]
print(driveslist)
#os.chdir('D:\Downloads')
datei= '*.prt'
directory = r"D:\Dokumente\Test\*.prt"
dateiengesamt = []
# Über alle Laufwerke und Ordner suchen.
print("Folgende Datein wurden gefunden:")
# Durch neue Funktion ersetzen und für jeden Laufwerksbuchstaben ausführen.
#for elem in driveslist:
# dateiengesamt += SearchFiles.searchfiles(elem)
for path in glob.glob(directory):
print( path )
print( '-'*40 )
listeDateien = glob.glob(directory)
# Anzahl aller gefundenen Dateien.
if (len(listeDateien)) == 0:
print("Es sind keine Protokolle vorhanden")
sys.exit()
else:
print("Die Anzahl der gefundenen Protokolle liegt bei:", (len(listeDateien)))
# Ausgabe wirklich löschen?
print("Wollen Sie alle Prtokolle löschen(ja oder nein eingeben)?")
loeschen = input()
#Benutzer fragen ob gelöscht werden soll.
if loeschen == "ja":
# Datei entfernen
for elem in listeDateien:
file_mtime = datetime.fromtimestamp(os.path.getmtime(elem))
max_mtime = datetime.now() - timedelta(seconds=60)
if file_mtime < max_mtime:
try:
os.remove(elem)
print("Alle Protokolle die älter als 2 Monate sind, wurden entfernt")
except:
print("Fehler beim löschen der Protokolle")
else:
print("Sie haben den Vorgang abgebrochen")
sys.exit()
Searchfiles:
Code: Alles auswählen
from pathlib import Path
import os
import pandas as pd
def searchfiles(laufwerk):
suffixes = []
returnfiles = []
for root, dirs, files in os.walk(laufwerk): # root = Path, dirs = folders, files = files
for file in Path(str(root)).iterdir():
if file.suffix == '.prt': # oder -> file.stem == 'filename'
#print('Path: ', root, '\nFiles:', files, '\n')
returnfiles.append(os.path.join(root, files))
df = pd.DataFrame([root])
df.to_clipboard(index=False, header=False)
return returnfiles
Wäre cool wenn mir jemand mein Skript anpasst/verbessert oder mir Tipps und Vorschläge gibt.
Danke im Vorraus
Gruß
ste8899