Jan-13-2017, 11:28 AM
I have managed to fix last problem by not discarding ext string, but adding as last column in the list.
Here is code:
Any advice how to adapt this script for filename and directory names with spaces?
Here is code:
import os from os import listdir from os.path import isfile, join from datetime import datetime from pprint import pprint def removeext(path): return os.path.splitext(path)[0] # os.chdir("e:/Backup-racunara/Novi_Sad/Dole_napred/JASMINA-PC/Revizije/C/Users/jasmina/AppData/Local/Microsoft/Outlook/") MyDir = 'c:/testasdasda' os.chdir(MyDir) maxfiles = 2 pst_files = [] lista2 = [] lista3 = [] deletelist = [] lista = [f for f in listdir(MyDir) if isfile(os.path.expanduser(fajl))] # lista = ['archive.pst 2016-10-14 080101.pst', 'archive.pst 2016-10-15 080101.pst', 'archive.pst 2016-10-17 080101.pst', 'archive.pst 2016-10-18 080101.pst', 'archive.pst 2016-10-19 080101.pst', 'archive.pst 2016-10-20 080101.pst', 'Outlook.pst 2016-10-14 080101.pst', 'Outlook.pst 2016-10-15 080101.pst', 'Outlook.pst 2016-10-17 080101.pst', 'Outlook.pst 2016-10-18 080101.pst', 'Outlook.pst 2016-10-19 080101.pst', 'Outlook.pst 2016-10-20 080101.pst', 'Outlook.sharing.xml.obi 2016-10-14 080101.obi', 'Outlook.sharing.xml.obi 2016-10-15 080101.obi', 'Outlook.sharing.xml.obi 2016-10-17 080101.obi', 'Outlook.sharing.xml.obi 2016-10-18 080101.obi', 'Outlook.sharing.xml.obi 2016-10-19 080101.obi', 'Outlook.sharing.xml.obi 2016-10-20 080101.obi'] print("lista:") print(lista) for line in lista: line = os.path.splitext(line)[0] + " " + os.path.splitext(line)[1] originalnamestring = os.path.splitext(line)[0] originalname = originalnamestring[:-19] timestring = originalnamestring[-7:-1] datestring = originalnamestring[-18:-8] lista2.append((originalname,datestring,timestring,os.path.splitext(line)[1])) print("lista2:") pprint(lista2) print("lista3 sorted:") list3 = sorted(lista2, key=lambda x: (x[0], datetime.strptime(x[1] + " " + x[2], "%Y-%m-%d %H%M%S")), reverse=True) pprint(list3) print("..................") originalname = "" nofiles = 1 for item in list3: if item[0] != originalname: originalname = item[0] nofiles = 1 if nofiles > maxfiles: print(str(nofiles) + ": " + originalname + " " + item[1]) deletelist.append(item) nofiles = nofiles + 1 print("deletelist:") pprint(deletelist) print("+++++++++++++++++") for item in deletelist: f = join(os.path.normpath(MyDir), item[0]+" "+item[1]+" "+item[2]+item[3]) print("File: "+f+" - Exist: "+str(isfile(f))) os.remove(f)My next problem is that it does not work for either very long file paths, or paths with space:
Quote:"e:/Backup-racunara/Novi_Sad/Dole_napred/JASMINA-PC/Revizije/C/Users/jasmina/AppData/Local/IconCache.db 2016-10-14 080101.db"
"e:/Backup-racunara/Novi_Sad/Dole_napred/JASMINA-PC/Revizije/C/Users/lj/NTUSER.DAT 2016-10-14 080101.DAT"
Any advice how to adapt this script for filename and directory names with spaces?