如何在 python 中将包含所有文件的目录从 c:\\xxx\yyy 复制到 c:\\zzz\

2024-04-21

我一直在尝试使用“copytree(src,dst)”,但是我不能,因为目标文件夹应该存在。在这里您可以看到我编写的一小段代码:

def copy_dir(src,dest):
    import shutil
    shutil.copytree(src,dest)

copy_dir('C:/crap/chrome/','C:/test/') 

这就是我所得到的错误,正如我所料......

Traceback (most recent call last):
File "C:\Documents and Settings\Administrator\workspace\MMS-Auto\copy.py", line 5, in        <module>
copy_dir('C:/crap/chrome/','C:/test/')   
File "C:\Documents and Settings\Administrator\workspace\MMS-Auto\copy.py", line 3, in copy_dir
shutil.copytree(src,dest)
File "C:\Python27\lib\shutil.py", line 174, in copytree
os.makedirs(dst)
File "C:\Python27\lib\os.py", line 157, in makedirs
mkdir(name, mode)
WindowsError: [Error 183] Cannot create a file when that file already exists:    'C:/test/'

我的问题是,有没有一种方法可以在不创建自己的 copytree 函数的情况下实现相同的结果?

先感谢您。


Notice:

distutils 已被弃用并将在 Python 3.12 中删除 https://docs.python.org/3/whatsnew/3.10.html#distutils-deprecated。如果您正在寻找 3.12 后的解决方案,请考虑寻找此问题的其他答案。


原答案:

我用的是distutils包比这里的其他答案更成功。

http://docs.python.org/2/distutils/apiref.html#module-distutils.dir_util http://docs.python.org/2/distutils/apiref.html#module-distutils.dir_util

The distutils.dir_util.copy_tree函数的工作原理非常类似于shutil.copytree除了那个dir_util.copy_tree只会覆盖存在的目录,而不是因异常而崩溃。

Replace:

import shutil
shutil.copytree(src, dst)

with:

import distutils.dir_util
distutils.dir_util.copy_tree(src, dst)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 python 中将包含所有文件的目录从 c:\\xxx\yyy 复制到 c:\\zzz\ 的相关文章

随机推荐

  • 您应该如何诊断错误 SEHException - 外部组件抛出异常

    每当用户报告错误时 例如 System Runtime InteropServices SEHException 外部组件引发的异常 作为一名程序员 我可以做些什么来确定原因吗 场景 一名用户 使用我公司编写的程序 报告了此错误 这可能是也
  • 从另一个页面访问时引导滚动间谍

    我试图链接到主页的特定部分 同时保持滚动间谍功能 有了这个代码 li a href sec1 About a li 滚动间谍正在运行 但如果我尝试从主页以外的页面访问它 它只会添加 sec1 到当前页面的 url 没有效果 如果我把它改成
  • 关于在单列中查找重复项的宏的建议

    发现了很多涉及在两列中查找重复项的问题 i e MS Excel 如何创建宏来查找重复项并突出显示它们 https stackoverflow com questions 2162684 ms excel how to create a m
  • 为什么numba cuda调用几次后运行速度变慢?

    我正在尝试如何在 numba 中使用 cuda 然而我却遇到了与我预想不同的事情 这是我的代码 from numba import cuda cuda jit def matmul A B C Perform square matrix m
  • ggpairs 中的数字四舍五入

    是否可以将 ggpairs 中的相关数字舍入为例如 2 位数字 library GGally ggpairs iris columns 1 4 mapping ggplot2 aes col Species 这是一个修改版本ggally c
  • 用于累积逗号分隔字符串的 C++ 预处理器宏

    我需要执行以下操作 const char my var Something REGISTER my var const char my var2 Selse REGISTER my var2 concst char all OUTPUT R
  • SSIS 错误 - 包中的版本号无效

    失败作业对应的日志如下 2014 年 4 月 11 日 06 40 00 LPR New 错误 0 USPHND0088 LPR New 作业 结果 作业失败 该作业由 Schedule 14 调用 LPR New Job 最后运行的一步是
  • 如何检测远程机器的操作系统

    从基于 net 的应用程序中 确定远程计算机上运行的操作系统是 Windows 还是 Linux 的最快方法是什么 只需 ping 一下即可 如果 TTL 生存时间 为 254 或更小 则它是基于 UNIX 的 如果 TTL 为 128 或
  • WPF:多显示器编程

    我在用着WPF in C 我想从多显示器编程开始 这意味着该应用程序将在许多具有不同视图的显示器上显示 我在网上搜索过 我得到了使用的方法Screen AllScreens 但是我有以下问题 有多种方法可以将多台显示器连接到 PC 情况 1
  • PDF 文件中的隐写术 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有人能告诉我 哪里可以将一些数据隐藏到 PDF 文件中吗 换句话说 PDF 文件中的隐写术 有什么算法可以做到这一点吗 有很多方法可以做到这一点 包括
  • 如何用bind来定义apply?

    在 Haskell 中 Applicatives 被认为比 Functor 更强 这意味着我们可以使用 Applicative 来定义 Functor 例如 Functor fmap a gt b gt f a gt f b fmap f
  • Swift - 在 LaunchScreen 上执行代码 [重复]

    这个问题在这里已经有答案了 在 iOS 中 在应用程序准备就绪之前会有一个 LaunchScreen 您可以在此添加要做的事情 代码 吗 我想在 LaunchScreen 上执行 JSON 请求 但不知道将代码放在哪里 提前致谢 卡塞特 正
  • 是否可以更改 MediaRecorder 的流?

    getUserMedia constrains then stream gt var recorder new MediaRecorder stream recorder start recorder pause get new strea
  • 将对象转换为可编码对象失败

    我收到以下错误 Converting object to an encodable object failed Instance of Patient 0 JsonStringifier writeObject dart convert j
  • Deltaspike 和@Stateless Bean

    我想使用 DeltaSpike API 保护我的 无状态 EJb Stateless Remote UserServiceRemote class public class UserService implements UserServic
  • 我们可以检索 li 的默认计数器值吗?

    我们可以检索到CSSli 的默认计数器值 例如 如果我有 6 个 li 分成 2 ol 但我想要 li 从 1 到 6 列出 而不是从 1 到 3 列出两次 我用了value 4 在第一个 li li 第二个的 ol 所以它有效 但现在因为
  • TeamCity Agent 缺少 DotNetFramework4.0_x86,但不是?

    我一直在尝试将 TeamCity 安装从旧服务器转移到新的 Windows Server 2008 R2 服务器上 我终于完成了所有配置 然而 构建代理说DotNetFramework4 0 x86在构建代理上不可用 但已安装 NET 4
  • 如何查找两个文件的集合差异?

    我有两个文件 A 和 B 我想找到 A 中 B 中没有的所有行 在 bash 使用标准 Linux 实用程序中执行此操作的最快方法是什么 到目前为止 这是我尝试过的 for line in cat file1 do if grep c li
  • 如何在 ionic 4 中提供警报控制器 css?

    我想在 ionic 4 中提供警报控制器样式 这些是我的演示代码 async presentalert const alert await this alertCtrl create header DO YOU WANT TO CANCEL
  • 如何在 python 中将包含所有文件的目录从 c:\\xxx\yyy 复制到 c:\\zzz\

    我一直在尝试使用 copytree src dst 但是我不能 因为目标文件夹应该存在 在这里您可以看到我编写的一小段代码 def copy dir src dest import shutil shutil copytree src de