ホームページ  >  記事  >  バックエンド開発  >  Pythonバックアップファイルスクリプト

Pythonバックアップファイルスクリプト

WBOY
WBOYオリジナル
2016-06-16 08:47:421105ブラウズ

実際の効果: ディレクトリ "/media/data/programmer/project/python" が指定され、バックアップ パスが "/home/diegoyun/backup/" であるとすると、Python ディレクトリ内のファイルは次の場所にバックアップされます。パス全体に従ってバックアップは次のようになります:

/home/diegoyun/backup/yyyymmddHHMMSS/python/xxx/yyy/zzz....

コードをコピー コードは次のとおりです:

import os
import shutil
import datetime

def mainLogic():
#コピーしたいディレクトリを追加
backdir="I:\バックアップ"
copydirs=[]
copydirs.append("D:\programmer")
copydirs.append("D:\diegoyun")

print "ファイルをコピーしています === == ==============
start=datetime.datetime.now()

#バックアップ用のデータ フォルダーを生成
backdir=os.path .join (backdir,start.strftime("%Y-%m-%d"))
#print "backdir is:"+backdir


kc=0
for d copydirs 内:
kc=kc+copyFiles(d,backdir)

end=datetime.datetime.now()
print "完了! ============ == ====="
print "合計ファイル数: " + str(kc)
print "経過時間: " + str((end-start).秒)+" 秒"

def copyFiles(copydir,backdir):
prefix=getPathPrefix(copydir)
#print "prefix is:"+prefix

i=0
for dirpath,dirnames,filenames in os.walk(copydir):
ファイル名の名前:
oldpath=os.path.join(dirpath,name)
newpath=omitPrefix(dirpath,prefix)
print "backdir is:" +backdir
newpath=os.path.join(backdir,newpath)
print "newpath is:"+newpath

if os.path.exists(newpath)!=​​True:
os.makedirs(newpath)
newpath=os.path.join(newpath,name)
print "From:"+oldpath+" to:"+newpath
shutil.copyfile(oldpath,newpath)
i =i+1
return i

def getPathPrefix(fullpath):
#/media/data/programmer/project/ を与え、プレフィックス
#/media/data/ を取得しますプログラマー/
l=fullpath.split(os.path.sep)
#print str(l[-1]=="")
if l[-1]=="":
tmp =l[-2]
else:
tmp=l[-1]
return fullpath[0:len(fullpath)-len(tmp)-1]

def omitPrefix( fullpath,prefix):
#Giving /media/data/programmer/project/python/tutotial/file/test.py ,
#プレフィックスは Giving /media/data/programmer/project/ ,
#return path as python/tutotial/file/test.py
return fullpath[len(prefix)+1:]

mainLogic()

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。