我想将某个文件复制到指定的路径。这个指定的路径有很多目录的层次结构,这些目录不是预先存在的,需要在复制过程中创建。使用Python复制文件到路径
我试过shutil.copy*
函数,但它们似乎都要求预先创建目标路径中的目录。
是否有任何功能根据需要设置这些目录并复制文件?
用法示例:
copy_file('resources/foo.bar', expanduser('~/a/long/long/path/foo.bar'))
我想将某个文件复制到指定的路径。这个指定的路径有很多目录的层次结构,这些目录不是预先存在的,需要在复制过程中创建。使用Python复制文件到路径
我试过shutil.copy*
函数,但它们似乎都要求预先创建目标路径中的目录。
是否有任何功能根据需要设置这些目录并复制文件?
用法示例:
copy_file('resources/foo.bar', expanduser('~/a/long/long/path/foo.bar'))
您可以使用os.makedirs
递归创建你所需要的树形图,然后使用shutil.copy
。
target_dir = os.path.expanduser('~/a/long/long/path')
os.makedirs(target_dir)
shutil.copy('resources/foo.bar', os.path.join(target_dir, 'foo_bar'))
这样,你在分解任务管理问题(创建然后复制),它可以让你处理这种情况的目录崩溃的创建(继“明确优于隐式”)的情况下。
[makedirs]的参数由['os.path.dirname'](http://docs.python.org/library/os.path.html#os.path.dirname)给出。 – katrielalex
我的+1。如果目标目录不存在,并且您想复制整个树,也可以使用'shutil.copytree()'。 – pepr
您可以在复制之前执行['mkdir -p'等价操作](http://stackoverflow.com/questions/600268/mkdir-p-functionality-in-python)。 –