এখানে পাইথন 3 স্ক্রিপ্ট রয়েছে যা সংরক্ষণের সময় মূল ফাইলের নামের সাথে সংযুক্ত টাইম স্ট্যাম্প ব্যবহার করে অটো ফাইলের সংস্করণকরণের মতো ভিএমএস করে।
আমি স্ক্রিপ্টে একগুচ্ছ মন্তব্য রেখেছি এবং আমার উবুন্টু মেশিনে এই জাতীয় অর্ধ ডজন স্ক্রিপ্টগুলি চালিয়েছি যেখানে স্ক্রিপ্টের প্রতিটি ভিন্ন সংস্করণে কেবল ডিরেক্টরিগুলি ভিন্ন হয় যাতে আমি একই সাথে একাধিক ডিরেক্টরি সংস্করণ করছি। মেশিনের পারফরম্যান্সের জন্য কোনও আসল শাস্তি নেই
! / usr / bin / env পাইথন 3
মুদ্রণ ("প্রকল্পের ফাইলগুলি সংস্করণ শুরু করা হয়েছে") মুদ্রণ ("version_creation.py") # এই নাম কোডের স্ক্রিপ্টে এই সমস্ত কোডটি স্থান দিন ("চালিত করুন .. 'python3 version_creation.py' কমান্ড লাইন থেকে") মুদ্রণ ("সিটিআরএল ' সি 'থামাতে ") মুদ্রণ (" ") মুদ্রণ (" নীচে কমান্ড লাইনের জন্য পটভূমিতে প্রোগ্রাম চালানোর জন্য উইন্ডোটি বন্ধ করুন "") মুদ্রণ ("নোহুপ পাইথন 3 সংস্করণ_ক্রিয়েশন.পি") মুদ্রণ (".... থেকে প্রক্রিয়া বন্ধ করুন মেনু / প্রশাসন / সিস্টেম মনিটর ... এবং পাইথন 3 কে হত্যা করুন ") মুদ্রণ (" ") মুদ্রণ (" সর্বদা ফাইলগুলিকে 'প্রকল্পফিলার' ডিরেক্টরিতে সংরক্ষণ করুন এবং সংস্করণ ফাইলগুলি ") মুদ্রণ (" ডিরেক্টরিতেও তৈরি করা হবে) । ") মুদ্রণ (" ") মুদ্রণ (" ") মুদ্রণ (" ") মুদ্রণ (" ")
আমদানি শুটিল আমদানি ওএস আমদানির সময়
--- নীচে নতুন ফাইল (সেকেন্ডে) পরীক্ষা করার জন্য সময় ব্যবধান নির্ধারণ করুন
- এই বিরতিটি অন্তরের চেয়ে নতুন হওয়া উচিত নতুন ফাইলগুলি প্রদর্শিত হবে!
t = 10
--- উত্স ডিরেক্টরি (dr1) এবং লক্ষ্য ডিরেক্টরি (dr2) সেট করুন
dr1 = "/ পাথ / থেকে / উত্স_নির্দেশ"
ড্র 2 = "/ পাথ / থেকে / টার্গেট_ ডিরেক্টরি"
আমদানি গ্লোব আমদানি ওএস
ড্র 1 = "/ হোম / মাইকেল / প্রজেক্টফিলস" # দুটি মূল এবং সংস্করণ এই ডিরেক্টরিতে সংরক্ষণ করা হবে
ড্র 2 = "/ হোম / মাইকেল / প্রকল্প ফাইল ফাইল"
যদিও সত্য:
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)
মুদ্রণ ("1 সর্বশেষ_ফায়াল_পাথ =", সর্বশেষ_ফাইলে_পাথ)
originalname = latest_file_path.split('/')[-1]
মুদ্রণ ("2 মূল নাম =", মূল নাম)
filecreation = (os.path.getmtime(latest_file_path))
মুদ্রণ ("filecreation =", ফাইলক্রিয়েশন)
now = time.time()
fivesec_ago = now - 5 # Number of seconds
মুদ্রণ ("পাঁচ সেক্সি_গো =", পাঁচ সেক্সি_গো)
timedif = fivesec_ago - filecreation #time between file creation
মুদ্রণ ("সময়সীমা =", সময়সীমা)
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)
ভাগ
নীচেটি আগে রাখা হয়েছিল এবং কাজ করেছে তবে আমি উপরের পাইথন স্ক্রিপ্টটি আরও ভাল পছন্দ করি ...... (প্রায় ২ ঘন্টা অজগর ব্যবহার করে যাচ্ছি)
#!/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