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

Posted

技术标签:

【中文标题】如何使用python复制文件以及目录结构/路径? [复制]【英文标题】:How to copy a file along with directory structure/path using python? [duplicate] 【发布时间】:2012-10-02 07:41:33 【问题描述】:

首先要在这里提一下,我是 python 新手。

现在我有一个文件位于:

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

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

/home/myhome/new_folder

我的预期结果是:

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

是否有任何现有的图书馆可以做到这一点?如果没有,我该如何实现?

【问题讨论】:

你去,这已经解释了***.com/questions/1994488/… 可能是docs.python.org/library/shutil.html#shutil.copyfile ? @Anderson Green:它不是重复的。如果交换问题,则接受的答案将不起作用。它们密切相关(在 Python 中复制内容);它不会使它们相同。请在下次投票结束前阅读完整的问题并查看答案。 前段时间,但一般来说,如果有类似但不相同的问题,一个好的策略是在自己的问题中引用现有的问题,并说明自己的问题有何不同。 【参考方案1】:

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

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)

【讨论】:

最后一行,dstdir是一个目录,应该是``` os.makedirs(dstdir) dstfile = os.path.join(dst, src) shutil .copyfile(src, dstfile) ``` @RebornJs: copy() 支持将目录作为第二个参数(注意:copy() 与 copyfile()) 哦,谢谢。我正在编写我的第一个 python 脚本,对现有库不太了解。 拼写错误,在'assert not os.path.isabs(scrfile)' 行中scrfilesrcfile【参考方案2】:

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

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

【讨论】:

以上是关于如何使用python复制文件以及目录结构/路径? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中使用独立于平台的实现复制文件夹及其内容(文件/子目录)

将文件从多个(指定)文件夹路径复制到另一个目录,同时保持文件结构

读取文件夹中的所有文件以及python中的文件名? [复制]

svn 下的pristine目录可以清理吗

[转帖]XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件

python文件名获取文件路径