Burada kaydedildiğinde orijinal dosya adına eklenmiş bir zaman damgası kullanarak VMS'yi otomatik dosya sürümlendirme gibi yapan bir Python3 betiği bulunmaktadır.
Senaryoya bir demet yorum koymak ve aynı anda birden çok dizin versiyonlamak böylece sadece dizinler betiğin her farklı sürümünde farklı olan ubuntu makinede yarım düzine böyle betikler çalıştırın. Makinelerin performansına gerçek bir ceza verilmez.
! / usr / bin / env python3
print ("PROJE DOSYALARI SÜRÜMÜ BAŞLADI") print ("version_creation.py") # bu kodun tamamını bu adın komut dosyasına yerleştirin print ("komut satırından" python3 version_creation.py 'olarak çalıştırın)) print ("ctrl' c 'durdurmak için ") print (" ") print (" Programı komut satırına aşağıdaki arka plan türünde çalıştırmak ve sonra pencereyi kapatmak için. ") print (" nohup python3 version_creation.py ") print (" .... işlemi durdur menü / yönetim / sistem monitörü ... ve python3'ü öldür ") print (" ") print (" Dosyaları daima 'ProjectFiles' dizinine ve sürüm dosyalarına kaydet ") print (" bu dizinde de oluşturulacaktır) . ") yazdır (" ") yazdır (" ") yazdır (" ") yazdır (" ")
ithalat kapat ithalat os ithalat süresi
--- aşağıdaki yeni dosyaları kontrol etmek için zaman aralığını ayarlayın (saniye cinsinden)
- bu aralık yeni dosyaların göründüğü aralıktan küçük olmalıdır!
t = 10
--- kaynak dizini (dr1) ve hedef dizini (dr2) ayarlayın
dr1 = "/ path / to / source_directory"
dr2 = "/ path / to / target_directory"
ithalat glob ithalat os
dr1 = "/ home / michael / ProjectFiles" # hem orijinal hem de sürümler bu dizine kaydedilecek
dr2 = "/ home / michael / ProjectFileVersions"
True iken:
if os.listdir(dr1) == []:
yazdır ("Boş")
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)
yazdır ("1 Latest_file_path =", son_dosya_yolu)
originalname = latest_file_path.split('/')[-1]
yazdır ("2 orijinal ad =", orijinal ad)
filecreation = (os.path.getmtime(latest_file_path))
print ("filecreation =", filecreation)
now = time.time()
fivesec_ago = now - 5 # Number of seconds
yazdır ("fivesec_ago =", fivesec_ago)
timedif = fivesec_ago - filecreation #time between file creation
yazdır ("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)
Paylaş
aşağıda daha önce koyuldu ve çalışıyor ama yukarıdaki python komut dosyası çok daha iyi gibi ...... (yaklaşık 3 saat boyunca python kullanarak)
#!/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