您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python复制文件代码实现

5b51 2022/1/14 8:17:49 python 字数 5607 阅读 352 来源 www.jb51.cc/python

主要功能在copyFiles()函数里实现,如下: 复制代码代码如下:defcopyFiles(src,dst):???srcFiles=os.listdir(src)???dstFiles=dict(map(lambdax:[x,\'\'],os.listdir(dst)))?&nb

概述

主要功能在copyFiles()函数里实现,如下:

这里我首先使用os.listdir()函数来遍历源文件夹src和目标文件夹dst,得到两个文件列表,但由于我需要判重操作,因此需要在dst文件列表中进行查询操作。由于列表的查询效率不高,而字典是一个哈希表,查询效率较高,因此我将目标文件列表转换成一个只有键没有值的字典:

然后我遍历源文件列表,若该路径是一个文件夹,先判断该文件夹在目标路径中是否存在,若不存在,则先创建一个新路径。然后递归调用函数。其实不存在的时候更高效的方法调用shutil.copytree()函数,但由于此处需要计算拷贝的文件数量,因此就没有调用函数

若该路径是一个文件,则首先判断该文件在目标文件夹中是否存在。若不存在,则拷贝。

由于写这个脚本主要是为了同步手机相册到PC,因此只简单地判断一下文件名。若要判断不同名但相同的文件,则可以继续判断一下md5值,这里就不再赘述。

完整代码如下:

# 输入两个文件夹a和b路径,将a中的文件拷进b,并计算拷贝的文件数。重复的不作处理。

import os
import shutil

def copyFiles(src,dst_path)
                filesCopiedNum += 1

    return filesCopiedNum

def test():
    src_dir = os.path.abspath(raw_input('Please enter the source path: '))
    if not os.path.isdir(src_dir):
        print 'Error: source folder does not exist!'
        return 0

    dst_dir = os.path.abspath(raw_input('Please enter the destination path: '))
    if os.path.isdir(dst_dir):
        num = copyFiles(src_dir,dst_dir)
    else:
        print 'Destination folder does not exist,a new one will be created.'
        os.makedirs(dst_dir)
        num = copyFiles(src_dir,dst_dir)

    print 'Copy complete:',num,'files copied.'

if __name__ == '__main__':
    test()

总结

以上是编程之家为你收集整理的python复制文件代码实现全部内容,希望文章能够帮你解决python复制文件代码实现所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶