如何使用python复制文件以及目录结构/路径?

How to copy a file along with directory structure/path using python?

本问题已经有最佳答案,请猛点这里访问。

首先我要说的是,我对python是个新手。

现在我有一个文件位于:

1
a/long/long/path/to/file.py

我想复制到我的主目录并创建一个新文件夹:

1
/home/myhome/new_folder

我的预期结果是:

1
/home/myhome/new_folder/a/long/long/path/to/file.py

有现成的图书馆吗?如果没有,我怎么能做到?


要创建所有中间级目标目录,可以在复制之前使用os.makedirs()

1
2
3
4
5
6
7
8
9
10
11
12
import os
import shutil

srcfile = 'a/long/long/path/to/file.py'
dstroot = '/home/myhome/new_folder'


assert not os.path.isabs(srcfile)
dstdir =  os.path.join(dstroot, os.path.dirname(srcfile))

os.makedirs(dstdir) # create all directories, raise an error if it already exists
shutil.copy(srcfile, dstdir)


看看shutilshutil.copyfile(src, dst)将把一个文件复制到另一个文件。

注意,shutil.copyfile不会创建不存在的目录。为此,使用os.makedirs