我想将某个文件复制到指定路径。这个指定的路径有许多预先不存在的目录层次结构,需要在复制过程中创建。
我尝试shutil.copy*
了功能,但它们似乎都要求预先创建目标路径处的目录。
是否有任何功能可以根据需要设置这些目录并复制文件?
示例用法:
copy_file('resources/foo.bar', expanduser('~/a/long/long/path/foo.bar'))
我想将某个文件复制到指定路径。这个指定的路径有许多预先不存在的目录层次结构,需要在复制过程中创建。
我尝试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'))
这样,您可以将问题分解为可管理的任务(创建然后复制),这样您就可以处理目录创建崩溃的情况(遵循“显式优于隐式”)。