Gå til innhold

Ønsker meg et program som arkiverer filer i mapper etter dato


Anbefalte innlegg

Skrevet

Heisann

 

Har et program som oppretter en fil hver time, med filnavn xxxxx[dd].[mm].[yyyy]-[tt]-[mm]-[ss]

 

Jeg ønsker et program som kan kjøre i bakgrunnen, som automatisk flytter filene i en mappe tilsvarende datoen på filene, sånn at det blir liggende 24 filer i hver mappe.

 

Ønsker samtidig at filene blir liggende i root-mappen i 24 timer før de blir arkivert i mappen. Hadde satt veldig stor pris på om noen hadde tatt seg tid til å lage noe sånt, evt. tipse meg om et ferdig program hvis det finnes :)

 

 

På forhånd, takk så mye!

Videoannonse
Annonse
Skrevet

Til hvilket os?

 

I Linux/OSX kan det enkelt løses med et script og en cron jobb.

Sikkert noen fine muligheter i Windows også med den nye Power saken de har fått..

  • 2 uker senere...
Skrevet

Kjenner ikke til noe slikt, men kan antagelig lage noe.

funker det å heller ha det som en planlagt oppgave?

Å lage noe som kjører i bakgrunnen blir vanskelig for min del ihvertfall.

Skrevet

Ingen som kjenner til noen mulighet for dette?

 

For 1900,- kr timen skal jeg vel få til noe på en uke eller to.

 

W

Skrevet (endret)

Hei r2d290.

 

Lage en kode for en stund siden som slettet filer etter satt dato.

Forandret litt på det,så nå flytter det filer før satt dato.

 

Dette vil flytte filer når du har fått 24 filer(en i timen som sier)for da skifter dato.

Til en mappe du velger.

Har ikke fått testet så mye med det ennå,viss filer har samme navn må det skives om litt.

 

Men du kan jo teste litt med det,kan kjøres som en windows "schedule" en gang i døgnet.

Man kan sette om en windows tjeneste(krever litt jobb opprette nytt i register)

Eller bruke python sin "schedule" modul.

 

Det beste hadde vært om du kunne litt python,og forandret det til og passe deg 100% nå har du fått et greit utgangspunkt.

#! /usr/bin/Python
# |---|snippsat|---|
# Date_remove.py

import os, glob, time, sys, shutil

def file_remove(root,xdate,dst_folder):
   '''
   * Function to remove file by there date/last modified-date
   * Possible to run from command line
   * sys.argv[0] name of this script sys.argv[1] first argument.
   * New fuction that move files to dst_folder
   '''
   print '-'*30
   for folder in glob.glob(root):
       print folder
       ##Remove now only txt,can use other file format eksp: .jpg
       for my_files in glob.glob(folder + '/*.txt'):        
           stats = os.stat(my_files)         
           lastmodDate = time.localtime(stats[8])  
           expDate = time.strptime(xDate, '%Y-%m-%d')
           print my_files, time.strftime("%m/%d/%y", lastmodDate)
           if  expDate > lastmodDate:
               try:
                   print 'Moving', my_files, time.strftime("(older than %m/%d/%y)", expDate)
                   shutil.move(my_files, dst_folder)  ##New function move file older than xDate
                   ##Can use move oy copy                    
                   #os.remove(my_files)  ##For testing we do not remove files,but use line over to print result.
               except OSError:
                   print 'Could not remove', my_files
   print '-'*30 

if __name__ == '__main__':    
   ##Your folder
   root = 'C:/tmp/'     

   ##To folder(move files)
   dst_folder = 'C:/tes/'    

   #Expiration date format YYYY-MM-DD
   xDate = '2010-03-01'

   #|---| TO use script from command line
   #xDate = sys.argv[2] ##Take Date to command line
   #root = sys.argv[1]  ##Take path to command line
   #root = 'D:/test/*'  ##To Seek all sub folders use *   

   #Call function
   file_remove(root,xDate,dst_folder)  

 

 

Test run med 2 eldere filer og en ny.

------------------------------
C:/tmp/
C:/tmp\file2.txt 02/20/10
Moving C:/tmp\file2.txt (older than 03/01/10)
C:/tmp\samlet.txt 02/20/10
Moving C:/tmp\samlet.txt (older than 03/01/10)
C:/tmp\samletny.txt 03/02/10
------------------------------

Endret av SNIPPSAT
Skrevet

Fenomenalt Snippsat :D

Får børste støv av pyton-boka som skal ligge på loftet et sted, og se om jeg får til noe. Er jo igrunn fin programmeringstrening samtidig.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...