Hier ist ein Python3-Skript, mit dem VMS die automatische Dateiversionierung mithilfe eines Zeitstempels ausführt, der beim Speichern an den ursprünglichen Dateinamen angehängt wird.
Ich habe eine Reihe von Kommentaren in das Skript eingefügt und ein halbes Dutzend solcher Skripte auf meinem Ubuntu-Computer ausgeführt, wobei nur die Verzeichnisse in den verschiedenen Versionen des Skripts unterschiedlich sind, sodass ich mehrere Verzeichnisse gleichzeitig versioniere. Keine wirkliche Beeinträchtigung der Maschinenleistung.
! / usr / bin / env python3
print ("PROJECT FILES VERSIONING STARTED") print ("version_creation.py") #Legen Sie den gesamten Code in das Skript dieses Namens. print ("run as .. 'python3 version_creation.py' from command line") print ("ctrl ' c 'to stop ") print (" ") print (" Um das Programm im Hintergrund auszuführen, geben Sie unten den Befehl ein und schließen Sie das Fenster. ") print (" nohup python3 version_creation.py ") print (" .... to Prozess stoppen, Menü / Administration / Systemüberwachung starten ... und python3 beenden ") print (" ") print (" Dateien immer im Verzeichnis 'ProjectFiles' und in den Versionsdateien speichern ") print (" wird ebenfalls in diesem Verzeichnis erstellt . ") print (" ") print (" ") print (" ") print (" ")
importiere bis importiere und importiere Zeit
--- Stellen Sie das Zeitintervall ein, nach dem nach neuen Dateien gesucht werden soll (in Sekunden)
- Dieses Intervall sollte kürzer sein als das Intervall, in dem neue Dateien angezeigt werden!
t = 10
--- Setzt das Quellverzeichnis (dr1) und das Zielverzeichnis (dr2)
dr1 = "/ path / to / source_directory"
dr2 = "/ path / to / target_directory"
import glob import os
dr1 = "/ home / michael / ProjectFiles" # Beide Originale und Versionen werden in diesem Verzeichnis gespeichert
dr2 = "/ home / michael / ProjectFileVersions"
während wahr:
if os.listdir(dr1) == []:
drucken ("leer")
n = 100
else:
list_of_files = glob.glob(dr1+'/*') # * means all if need specific format then *.csv
latest_file_path = max(list_of_files, key=os.path.getctime)
print ("1 Latest_file_path =", latest_file_path)
originalname = latest_file_path.split('/')[-1]
print ("2 originalname =", originalname)
filecreation = (os.path.getmtime(latest_file_path))
print ("filecreation =", Dateierstellung)
now = time.time()
fivesec_ago = now - 5 # Number of seconds
print ("fivesec_ago =", fivesec_ago)
timedif = fivesec_ago - filecreation #time between file creation
print ("timedif =", timedif)
if timedif <= 5: #if file created less than 5 seconds ago
nameroot = originalname.split(".")[-0]
print ("3 nameroot= ", nameroot)
extension = os.path.splitext(originalname)[1][1:]
print ("4 extension = ", extension)
curdatetime = time.strftime('%Y%m%d-%H%M%S')
print ("5 curdatetime = ", curdatetime)
newassembledname = (nameroot + "_" + curdatetime + "." + extension)
print ("6 newassembledname = ", newassembledname)
source = dr1+"/"+originalname
print ("7 source = ", source)
target = dr1+"/"+newassembledname
print ("8 target = ", target)
shutil.copy(source, target)
time.sleep(t)
Teilen
das untenstehende wurde früher eingefügt und funktioniert, aber ich mag das obige Python-Skript viel besser ...... (benutze Python seit ca. 3 Stunden)
#!/usr/bin/env python3
print ("PROJECT FILES VERSIONING STARTED")
print ("projectfileversioning.py")
print ("run as.. 'python3 projectfileversioning.py' from command line")
print ("ctrl 'c' to stop")
print (" ")
print ("To run program in background type below to command line and then close the window. ")
print ("nohup python3 projectfileversioning.py")
print ("....to stop process go menu/administration/system monitor... and kill python")
print (" ")
print ("Always save files to the 'ProjectFiles' directory and the file ")
print (" will be redirected to the ProjectFileVersions where")
print (" time stamped versions will also be created.")
print (" ")
print ("If you like you may then copy/move the versioned and original file from 'ProjectFileVersions' to ")
print ("any other directory you like.")
import shutil
import os
import time
#--- set the time interval to check for new files (in seconds) below
#- this interval should be smaller than the interval new files appear!
t = 10
#--- set the source directory (dr1) and target directory (dr2)
#dr1 = "/path/to/source_directory"
#dr2 = "/path/to/target_directory"
import glob
import os
dr1 = "/home/michael/ProjectFiles"
dr2 = "/home/michael/ProjectFileVersions"
while True:
if os.listdir(dr1) == []:
n = 100
else:
list_of_files = glob.glob(dr1+'/*') # * means all if need specific format then *.csv
latest_file_path = max(list_of_files, key=os.path.getctime)
print ("1 Latest_file_path = ", latest_file_path)
originalname = latest_file_path.split('/')[-1]
print ("2 originalname = ", originalname)
nameroot = originalname.split(".")[-0]
print ("3 nameroot= ", nameroot)
extension = os.path.splitext(originalname)[1][1:]
print ("4 extension = ", extension)
curdatetime = time.strftime('%Y%m%d-%H%M%S')
print ("5 curdatetime = ", curdatetime)
newassembledname = (nameroot + "_" + curdatetime + "." + extension)
print ("6 newassembledname = ", newassembledname)
source = dr1+"/"+originalname
print ("7 source = ", source)
target = dr2+"/"+originalname
print ("8 target = ", target)
shutil.copy(source, target)
source = dr1+"/"+originalname
print ("9 source = ", source)
target = dr2+"/"+newassembledname
print ("10 target = ", target)
shutil.move(source, target)
time.sleep(t)
#share