import os
import time
import multiprocessing
from queue import Queue
def copyFileTask(oldFolderName,newFolderName,filename,queue):
fr = open(os.path.join(oldFolderName,filename),'rb')
fw = open(os.path.join(newFolderName,filename),'wb')
with fr,fw:
content = fr.read(1024)
while content:
fw.write(content)
print('write %s' %(filename))
queue.put(filename)
def main():
oldFolderName = input('请输入备份的目录名:')
dateName = time.strftime('%Y_%m_%d_%H_%M')
newFolderName = oldFolderName+'_备份'+dateName
os.mkdir(newFolderName)
print('正在创建备份目录%s...'%(newFolderName))
fileNames = os.listdir(oldFolderName)
queue = multiprocessing.Manager().Queue()
pool = multiprocessing.Pool(2)
for name in fileNames:
# print("test", name)
pool.apply_async(copyFileTask,args=(oldFolderName,
newFolderName,
name,
queue))
num = 0
allNum = len(fileNames)
while num < allNum:
queue.get()
num+=1
copyRate = num/allNum
print('\r\r备份的进度为%.2f%%'%(copyRate*100),end ='')
pool.close()
pool.join()
print('备份成功')
if __name__ == '__main__':
main()
应用python编程进行目录文件的备份
猜你喜欢
转载自blog.csdn.net/qq_43279936/article/details/87894499
今日推荐
周排行