`
desert3
  • 浏览: 2171591 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

python文件夹复制

阅读更多
需求:复制1个10多个G的文件夹(另外机器共享过来的文件夹,里面含有约10w个文件)到本机一个目录(另外那台机器磁盘满了的原因)

使用windows的文件夹复制,发现经常在复制一部分文件后,因某些莫名其妙的原因被中断(提示某个文件复制失败,网络被断开,可能是由于网络不稳定),然后就要从头再来,搞了几个小时还没有搞完,烦死

就想到用python写个脚本来做这个事情:文件已经存在并且大小一致时不重复复制加快处理速度

代码如下
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#@author zcwang3@gmail.com
#@version 2010-09-25 14:57

import os
import time

sourceDir = r"\\192.168.3.250\mmtimages"
targetDir = r"D:\mmtimages"
copyFileCounts = 0

def copyFiles(sourceDir, targetDir):
    global copyFileCounts
    print sourceDir
    print u"%s 当前处理文件夹%s已处理%s 个文件" %(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())), sourceDir,copyFileCounts)
    for f in os.listdir(sourceDir):
        sourceF = os.path.join(sourceDir, f)
        targetF = os.path.join(targetDir, f)
              
        if os.path.isfile(sourceF):
            #创建目录
            if not os.path.exists(targetDir):
                os.makedirs(targetDir)
            copyFileCounts += 1
            
            #文件不存在,或者存在但是大小不同,覆盖
            if not os.path.exists(targetF) or (os.path.exists(targetF) and (os.path.getsize(targetF) != os.path.getsize(sourceF))):
                #2进制文件
                open(targetF, "wb").write(open(sourceF, "rb").read())
                print u"%s %s 复制完毕" %(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())), targetF)
            else:
                print u"%s %s 已存在,不重复复制" %(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())), targetF)
        
        if os.path.isdir(sourceF):
            copyFiles(sourceF, targetF)
        
if __name__ == "__main__":
    try:
        import psyco
        psyco.profile()
    except ImportError:
        pass
    copyFiles(sourceDir,targetDir)
分享到:
评论
3 楼 Xorcerer 2010-10-08  
让我想起rsync。
2 楼 desert3 2010-09-29  
用python写的程序发现每秒大概能复制6 7 个图片文件(每个100k左右)

后来找到工具FastCopy,每秒大概能复制11个左右,速度更快,还有一些容错的功能
就直接用FastCopy,上面的代码就放弃了
1 楼 sikeh 2010-09-26  
distutils.dir_util.copy_tree does what you want.

Copy an entire directory tree src to a new location dst. Both src and dst must be directory names. If src is not a directory, raise DistutilsFileError. If dst does not exist, it is created with mkpath(). The end result of the copy is that every file in src is copied to dst, and directories under src are recursively copied to dst. Return the list of files that were copied or might have been copied, using their output name. The return value is unaffected by update or dry_run: it is simply the list of all files under src, with the names changed to be under dst.

相关推荐

    Python 批量复制文件夹,不复制里面的内容

    Python 批量复制文件夹,不复制里面的内容 使用教学:https://blog.csdn.net/weixin_44291381/article/details/116229784

    python脚本文件夹间复制

    python脚本文件夹间复制,python脚本文件夹间复制,python脚本文件夹间复制

    python复制文件夹 [包含子文件夹 询问是否覆盖文件]

    Windows 上的 xcopy 居然不可以实现 不覆盖文件复制文件夹 我用python实现了 参数 write_exists True: 覆盖 False: 不覆盖

    python 文件夹批量操作.txt

    Python文件夹批量操作是一个利用Python编程语言自动化管理文件和文件夹的过程,其涵盖了重命名、移动、复制和删除等多种文件操作。在处理大量文件时,手动一个个进行操作不仅效率低下,而且容易出错,因此,通过编写...

    python进行文件夹复制和jar包的合并

    在这个场景下,我们将探讨如何使用Python进行文件夹复制以及如何合并JAR(Java Archive)包。首先,我们来理解这两个概念。 文件夹复制是日常编程任务中的常见需求。Python提供了多种方式来实现这一功能,其中最...

    python 复制文件夹操作.txt

    在学习和使用Python进行开发的过程中,复制文件夹是一项常见的需求。本文详细介绍了如何使用Python脚本来复制文件夹,包括导入必要的库、编写复制函数和调用函数的完整步骤。首先,导入os库是进行文件和目录操作的...

    文件夹下所有图片的读取以及显示(python程序)

    文件夹下所有图片的读取以及显示(python程序) 本文将详细介绍如何使用 Python 程序读取文件夹中的图片,并将其显示出来。本文适用于图像处理的第一阶段,代码简单易懂,易于阅读和理解。 读取文件夹中的图片 在...

    python 复制文件到指定文件夹

    copytree()函数会将原始文件夹中的所有文件和子文件夹复制到目标文件夹中。 三、复制文件时解决文件冲突 在复制文件时,可能会出现文件冲突的情况,即目标路径中已经存在同名文件。为了避免文件冲突,可以使用 ...

    python文件和文件夹复制函数

    文件夹复制涉及到递归,因为文件夹可能包含多个子文件夹和文件。这里我们需要使用Python的`os`模块来获取文件和文件夹信息,以及创建新的目录。以下是文件夹复制函数的实现: ```python import os def copy_mulu...

    文件夹复制、文件复制工具

    这里我们将深入探讨“文件夹复制”和“文件复制”这两个关键概念,以及相关的工具和技术。 首先,文件复制是指将一个或多个文件从源位置移动或复制到目标位置的过程。这个操作在各种场景中都非常常见,例如备份数据...

    python一键复制打包文件夹工具

    快速复制: 通过简单的命令,将源文件夹(A文件夹)中的内容一键复制到目标文件夹(B文件夹)。 自动压缩: 脚本会自动将复制的文件压缩成一个便捷的ZIP包,减小文件大小,方便传输与存储。 定时关机: 在复制和压缩...

    Python批量复制Word表格中内容

    在这个场景下,我们关注的是如何使用Python批量复制Word文档中的表格内容。这通常涉及到读取Word文件,解析其内容,特别是表格部分,并将这些内容复制或保存到其他地方。以下是两种可能的方法来实现这个目标: 方法...

    python操作文件夹库.txt

    Python文件夹操作库全攻略涵盖了多种情况,为用户在Python项目中管理文件提供了强大的支持。从创建、删除、移动文件夹到对文件夹中的文件进行读写操作,再到对文件夹和文件进行搜索、遍历等操作,Python操作文件夹的...

    python通过paramiko复制远程文件及文件目录到本地

    复制远程服务器上的文件及文件夹到本地目录。 解释一下什么叫paramiko: paramiko是用python写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。利用该模块,可以方便的进行ssh连接和sftp...

    python执行scp命令拷贝文件及文件夹到远程主机的目录方法

    SCP(Secure Copy)是基于SSH协议的安全文件传输工具,它允许用户通过加密连接将文件从本地复制到远程主机或者反之。 在给定的例子中,我们看到一个Python脚本`3s.py`,它使用了`subprocess`模块来调用操作系统级别...

    Python-ppcp带进度条显示的文件和目录复制命令行工具

    Python的ppcp是一个非常实用的命令行工具,它扩展了标准的`cp`命令,为文件和目录的复制过程增加了进度条显示。这个工具对于在大量数据转移时提供用户友好的体验尤其有用,因为它能让用户实时看到复制进度,而不是...

    Python案例-Python批量新建文件夹并保存日志信息

    本案例聚焦于Python在文件系统操作方面的能力,特别是如何利用Python脚本批量新建文件夹并保存相应的日志信息。在处理文件和目录时,Python提供了强大的内置库,如`os`和`shutil`,这些库能够帮助开发者高效地完成...

    使用python os模块复制文件到指定文件夹的方法

    而本文主要关注的是如何使用Python的os模块和shutil模块来复制文件到指定的文件夹。这一过程不仅涉及到文件的读写操作,还包括了文件路径的处理以及复制过程中性能的优化。 首先,我们来看看基本的复制文件流程。...

    py批量复制文件夹及其内容

    按txt的文件夹名,批量复制到指定目录

    使用python对文件夹操作.txt

    首先,了解Python文件夹操作的基础是必不可少的。Python提供了内置的`os`模块,该模块包含了一系列用于文件与目录操作的函数和类。通过使用这些功能,我们能够对文件系统进行有效的管理。具体来说,`os.path`是`os`...

Global site tag (gtag.js) - Google Analytics