python的shutil.copytree为啥会出现无限循环?

shutil.copytree(r'C:/Users/admin/Desktop/test/文件夹1','C:/Users/admin/Desktop/test/文件夹1/文件夹2/文件夹3')

当文件夹1里面不存在文件夹2时代码执行正常。但是当文件夹1里面存在文件夹2时,会出现以下报错:

Traceback (most recent call last):
  File "C:/Users/admin/Desktop/test/test.py", line 3, in <module>
    shutil.copytree(r'C:/Users/admin/Desktop/test/文件夹1','C:/Users/admin/Desktop/test/文件夹1/文件夹2/文件夹3')
  File "D:\Python\Python37\lib\shutil.py", line 359, in copytree
    raise Error(errors)
shutil.Error: [('C:/Users/admin/Desktop/test/文件夹1\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3', 'C:/Users/admin/Desktop/test/文件夹1/文件夹2/文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3\\文件夹2\\文件夹3', "[WinError 206] 文件名或扩展名太长。: 'C:/Users/admin/Desktop/test/文件夹1/文件夹2/文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3\\\\文件夹2\\\\文件夹3'")]

看着像是无限循环了。

copytree是递归拷贝,应该是动态拷贝,文件夹3本来就属于文件夹1,你现在把文件夹1拷到3里去,相当于文件夹1中的内容不断的在增多,但你还要把这个增多的内容往3里拷。
我想可以借助中间临时目录再拷到目标目录

# 目标文件夹最后加上/就行了
shutil.copytree(r'C:/Users/admin/Desktop/test/文件夹1','C:/Users/admin/Desktop/test/文件夹1/文件夹2/文件夹3/')