用Python复制目录内容到另一个目录
我有一个文件夹 /a/b/c,里面有一些文件和子文件夹。
我想把 /a/b/c 里的所有东西复制到 /x/y/z 这个文件夹里。我可以用什么 Python 方法来做到这一点呢?
我试过用 shutil.copytree("a/b/c", "/x/y/z")
,但是 Python 试图创建 /x/y/z,结果出现了一个错误,提示“目录已存在”。
4 个回答
1
from subprocess import call
def cp_dir(source, target):
call(['cp', '-a', source, target]) # Linux
cp_dir('/a/b/c/', '/x/y/z/')
对我来说是有效的。基本上,它执行的是一个叫cp的命令。
4
你还可以使用glob2这个工具来递归地收集所有的路径(使用**这个符号来表示子文件夹),然后再用shutil.copyfile来复制文件,同时保存这些路径。
glob2的链接在这里:https://code.activestate.com/pypm/glob2/
231
我找到了一段可以正常工作的代码,它是标准库的一部分:
from distutils.dir_util import copy_tree
# copy subdirectory example
from_directory = "/a/b/c"
to_directory = "/x/y/z"
copy_tree(from_directory, to_directory)
参考资料: