"""
利用递归实现目录的遍历
@para sourcePath:原文件目录
@para targetPath:目标文件目录
"""
def getDirAndCopyFile(sourcePath, targetPath):
if not os.path.exists(sourcePath):
print("--------------------源文件不存在");
return
if not os.path.exists(targetPath):
os.makedirs(targetPath)
if os.path.isfile(sourcePath):
shutil.copy(sourcePath, targetPath)
return
# 遍历文件夹
for fileName in os.listdir(sourcePath):
# 拼接原文件或者文件夹的绝对路径
absourcePath = os.path.join(sourcePath, fileName)
# 拼接目标文件或者文件加的绝对路径
abstargetPath = os.path.join(targetPath, fileName)
# 判断原文件的绝对路径是目录还是文件
if os.path.isdir(absourcePath):
# 是目录就创建相应的目标目录
os.makedirs(abstargetPath)
# 递归调用getDirAndCopyFile()函数
getDirAndCopyFile(absourcePath, abstargetPath)
# 是文件就进行复制
if os.path.isfile(absourcePath):
rbf = open(absourcePath, "rb")
wbf = open(abstargetPath, "wb")
while True:
content = rbf.readline(1024 * 1024)
if len(content) == 0:
break
wbf.write(content)
wbf.flush()
rbf.close()
wbf.close()