【问题标题】:How to use shutil.copytree without copying parent file path?如何在不复制父文件路径的情况下使用 shutil.copytree?
【发布时间】:2019-06-19 21:53:09
【问题描述】:

我对 Python 非常陌生,并且正在完成《用 Python 自动化无聊的东西》一书中的一些练习。我正在学习如何使用 Python 组织文件。我对使用shutil.copytree() 时会发生什么感到困惑。当我使用它时,它会将我的源文件夹及其文件路径中的每个父文件夹复制到我的目的地,但我不想要父文件夹。


我有两个目录:

目录1:/Users/myname/f1/f2/f3/f4/f5

目录 2:/Users/myname/fALPHA/fBETA/fCHARLIE/fDELTA


我想将从f3 开始的所有内容复制到fDELTA 文件夹。我希望新目录看起来像这样:

/Users/myname/fALPHA/fBETA/fCHARLIE/fDELTA/f3/f4/f5


我当前的代码是这样的:

shutil.copy('/Users/myname/f1/f2/f3','/Users/myname/fALPHA/fBETA/fCHARLIE/fDELTA')

但是,我最终得到的是:

/Users/myname/fALPHA/fBETA/fCHARLIE/fDELTA/Users/myname/f1/f2/f3/f4/f5

我不希望它复制所有这些父文件夹。我只想要从指定源开始的树。

我知道这看起来很简单,但我似乎找不到解决方案。

【问题讨论】:

  • 你用的是什么代码? shutil.copytree("/Users/myname/f1/f2/f3", "/Users/myname/fALPHA/fBETA/fCHARLIE/fDELTA/f3")这不是给你想要的结果吗?
  • @lc74 的建议应该有效。请注意,其中的目标路径以 /f3 结尾,这与您当前代码中的不同。 copytree() 的文档指定目标目录不应该已经存在,因此您必须指定一个作为其路径的一部分。

标签: python shutil


【解决方案1】:

正如@Ic74 所评论的,您缺少的是“fDELTA”文件夹下的目标目录的名称,

from shutil import copytree
from_path = "/Users/myname/f1/f2/f3"
to_path = "/Users/myname/fALPHA/fBETA/fCHARLIE/fDELTA/f3"
copytree(from_path,to_path)

【讨论】:

    猜你喜欢
    • 2016-03-14
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    相关资源
    最近更新 更多