【发布时间】:2014-07-26 23:06:20
【问题描述】:
我正在编写一个脚本来将文件从一个目录(主)备份到另一个目录(克隆)。 并且脚本会监控这两个目录。
如果克隆中的文件丢失,则脚本会将丢失的文件从 Master 复制到 克隆。现在我在创建丢失的文件夹时遇到问题。
我已经阅读了文档,发现 shutil.copyfile 会创建一个目录,如果 dir 不存在。但我收到一条 IOError 消息,显示目标目录 不存在。下面是代码。
import os,shutil,hashlib
master="C:\Users\Will Yan\Desktop\Master"
client="D:\Clone"
if(os.path.exists(client)):
print "PATH EXISTS"
else:
print "PATH Doesn't exists copying"
shutil.copytree(master,client)
def walkLocation(location,option):
aList = []
for(path,dirs,files) in os.walk(location):
for i in files:
if option == "path":
aList.append(path+"/"+i)
else:
aList.append(i)
return aList
def getPaths(location):
paths=[]
files=[]
result =[]
paths = walkLocation(location,'path')
files = walkLocation(location,'files')
result.append(paths)
result.append(files)
return result
ma=walkLocation(master,"path")
cl=walkLocation(client,"path")
maf=walkLocation(master,"a")
clf=walkLocation(client,"a")
for i in range(len(ma)):
count = 0
for j in range(len(cl)):
if maf[i]==clf[j]:
break
else:
count= count+1
if count==len(cl):
dirStep1=ma[i][ma[i].find("Master")::]
dirStep2=dirStep1.replace("Master",client)
shutil.copyfile(ma[i],dirStep2)
谁能告诉我我哪里做错了? 谢谢
【问题讨论】:
-
使用 rsync 或 robocopy 会不会更容易