Kleines Problem mit Script

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mimocloud
User
Beiträge: 31
Registriert: Freitag 3. Mai 2013, 15:12

Moin,

ich sags mal sofort herraus! Ich bin ein total noob ;)
Ich hab am coding nicht gerade viel Spaß und versuche es auch möglichst zu umgehen...
Allerdings musste ich hier dennoch was Schreiben:

Code: Alles auswählen

import sys, os, time
path="/home"
for root, subFolders, files in os.walk(path):
    for file in files:
        fullpath=os.path.join(root, file)
        ftime = os.path.getmtime(fullpath)
        print (fullpath)
        curtime = time.time()
        difftime = curtime - ftime
        if difftime > 4838400: ##in sek.
            os.remove(fullpath)
        else:
            print("Probleme bei der Ausfuerung. Datei Ist evtl. noch zu neu!")
            break
Mit dem Script muss ich einige veraltete Uploads aus dem Home-Ordner platt machen!
Ich komme komischerweise immer bis in die Else Anweisung rein! Also die Meldung innerhalb der Else Anweisung wird mir immer ausgegeben, vollkommen egal ob if zutrifft oder nicht!

Wäre für Hilfe sehr dankbar!
Zuletzt geändert von Anonymous am Mittwoch 25. September 2013, 11:06, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

mimocloud hat geschrieben:Also die Meldung innerhalb der Else Anweisung wird mir immer ausgegeben, vollkommen egal ob if zutrifft oder nicht!
Wenn die Meldung ausgegeben wird, dann ist `difftime` größer 4838400. Setz' doch einfach mal ein debug-print wie z. B.

Code: Alles auswählen

print 'curtime {0} - ftime {1} = difftime {2}'.format(curtime, ftime, difftime)
vor die `if`-Abfrage. Dann siehst Du, ob die Werte überhaupt dem entsprechen, was Du erwartest...

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BlackJack

@mimocloud: Wenn Du im ``else``-Zweig landest, dann war die Bedingung vom ``if`` nicht erfüllt. Es kann nicht sein dass die Bedingung dort zutrifft und Du trotzdem im ``else`` landest.

Sind 56 Tage denn das was Du wolltest? Und dir ist klar dass die Dateien in jedem Ordner nur bis zur ersten Datei abgearbeitet werden bis die Bedingung nicht zutrifft, wegen dem ``break``!?
mimocloud
User
Beiträge: 31
Registriert: Freitag 3. Mai 2013, 15:12

Die Sache mit dem Brake war mir nicht klar!
Diese sollte ich also rausnehmen oder???
Ich will ja das er durch alle Ordner + Unterordner usw. Durchläuft und jede Datei platt macht die älter als x tage ist!

das hier habe ich jetzt als Ausgabe zurück bekommen:

Code: Alles auswählen

/home/MVV/KH_zu_Kunde/Lizenzen/MOF20130912.zip
curtime 1380110275.68 - ftime 1378985203.49 = difftime 1125072.19618
/home/kiel/Kunde_zu_KH/2013-09-12_Testdump/KD_KIEL_T_2013-09-12.exe
curtime 1380110275.68 - ftime 1379074701.0 = difftime 1035574.68397
/home/evi/Kunde_zu_KH/nts_suite_navision_backup_2013_09_19.rar
curtime 1380110275.68 - ftime 1379611797.0 = difftime 498478.684188
/home/evi/KH_zu_Kunde/KH FirstNet v6.22.17.45216 - RegFree.exe
curtime 1380110275.68 - ftime 1379087423.0 = difftime 1022852.68433
/home/evi/KH_zu_Kunde/23092013/KD_EVI_FN_PROD_20130923_1517.zip
curtime 1380110275.68 - ftime 1379942888.0 = difftime 167387.684433
/home/evi/KH_zu_Kunde/Backup SQL Datenbank Navision/Backup SQL Datenbank Navision.rar
curtime 1380110275.69 - ftime 1377851611.5 = difftime 2258664.18586
/home/evi/KH_zu_Kunde/DELTAMIG/KD_EVI_FN_PROD_20130916_931_VOR_AUSLIEFERUNG.DMP
curtime 1380110275.69 - ftime 1379316925.0 = difftime 793350.685499
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@mimocloud: Und wo liegt jetzt das Problem? Keine der berührten Dateien scheint älter als 56 Tage zu sein....

Wobei mir Deine Ausgabe etwas Angst macht... willst Du z. B. auch Programmdateien löschen?

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Antworten