我有一个主文件夹 netbooks_nbo ,其中包含更多过时的文件夹。我想获取最后七个文件夹(按最后修改日期)并将它们复制到 C:\ 驱动器上的某个位置。这是我当前的代码:
代码如下所示:
import os
import distutils.core
def get_immediate_subdirectories(dir):
return [os.path.join(dir, name) for name in os.listdir(dir)
if os.path.isdir(os.path.join(dir, name))]
def main():
path = "\\\\Network_Drive\\netbooks_nbo"
all_dirs = get_immediate_subdirectories(path)
all_dirs.sort(key=lambda x: os.path.getmtime(x))
all_dirs = all_dirs[len(all_dirs)-7: len(all_dirs)]
for i in all_dirs:
for n in get_immediate_subdirectories(i):
distutils.dir_util.copy_tree(n, "C:\\AllFiles")
print "copied"+ n
问题是 dir_util.copy_tree 复制所有文件,而不是实际目录。我想保留目录结构。我尝试使用 shutil.copytree(src, dst)
,但它只返回一个错误,因为在 for 循环的一次迭代之后 C:\AllFiles 将已经存在。并且由于一些奇怪的权限错误而shutil.copy(src,dst)
不起作用。
有任何想法吗?