Python Forum
How to create def for sorted() from list of versioning files (filename+datetime)
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to create def for sorted() from list of versioning files (filename+datetime)
#7
I have managed to fix last problem by not discarding ext string, but adding as last column in the list.

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?
Reply


Messages In This Thread
RE: How to create def for sorted() from list of versioning files (filename+datetime) - by DrLove73 - Jan-13-2017, 11:28 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Delete strings from a list to create a new only number list Dvdscot 8 1,810 May-01-2023, 09:06 PM
Last Post: deanhystad
  list the files using query in python arjunaram 0 745 Mar-28-2023, 02:39 PM
Last Post: arjunaram
  Create new folders and copy files cocobolli 3 1,735 Mar-22-2023, 10:23 AM
Last Post: Gribouillis
  Failing to print sorted files tester_V 4 1,430 Nov-12-2022, 06:49 PM
Last Post: tester_V
  [split] why can't i create a list of numbers (ints) with random.randrange() astral_travel 7 1,710 Oct-23-2022, 11:13 PM
Last Post: Pedroski55
  How to download a list of files from FTP? schnarkle 0 1,082 Jun-21-2022, 10:35 PM
Last Post: schnarkle
  Rename part of filename in multiple files atomxkai 7 7,696 Feb-18-2022, 10:03 PM
Last Post: atomxkai
  Python code to read second line from CSV files and create a master CSV file sh1704 1 2,540 Feb-13-2022, 07:13 PM
Last Post: menator01
  Append files and add column with last part of each filename NiKirk 0 2,745 Feb-04-2022, 07:35 AM
Last Post: NiKirk
  set and sorted, not working how expected! wtr 2 1,391 Jan-07-2022, 04:53 PM
Last Post: bowlofred

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020