如何:
shutil.copytree(src, dst)
或实现自己的copytree,遍历目录,如果需要创建它们(避免的问题,“目标目录必须不存在。”在评论中指出),排序的1路同步:
import os, os.path, shutil
src="G:\\TestCopy"
dst="D:\\TestCopy"
def copy_tree(srcpath, dstpath):
print(srcpath)
if not os.path.exists(dstpath):
os.makedirs(dstpath)
for candidate in os.listdir(srcpath):
srccan = os.path.join(srcpath, candidate)
dstcan = os.path.join(dstpath, candidate)
if os.path.isdir(srccan):
copy_tree(srccan, dstcan)
else:
shutil.copyfile(srccan, dstcan)
copy_tree(src, dst)
如果您想根据从路径份的特定用户构建用户的字符串,os.path.join
擅长这样做:
specificuser = "fred"
src = os.path.join("G:\\users", specificuser, "Documents")
dst = os.path.join("D:\\users", specificuser, "Documents")
print(src)
print(dst)
输出:
G:\users\fred\Documents
D:\users\fred\Documents
一切皆有可能在Python。 :) – Pynchia
你关心文件所有权和访问控制列表吗?像这样的元数据不会被shutil复制。 – Galax
目的地似乎与源所在的路径相同,除了它所属的磁盘之外,因此您可以根据源创建目标而不需要重新键入 – Pynchia