• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > python复制文件代码实现

python复制文件代码实现

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python打开文件代码,python代码执行py文件,python怎么编代码,python源代码下载,python程序代码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

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

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

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

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

完整代码如下:

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

import os
import shutil

def copyFiles(src, dst):
    srcFiles = os.listdir(src)
    dstFiles = dict(map(lambda x:[x, ''], os.listdir(dst)))
    filesCopiedNum = 0

    # 对源文件夹中的每个文件若不存在于目的文件夹则复制
    for file in srcFiles:
        src_path = os.path.join(src, file)
        dst_path = os.path.join(dst, file)
        # 若源路径为文件夹,若存在于目标文件夹,则递归调用本函数;否则先创建再递归。
        if os.path.isdir(src_path):
            if not os.path.isdir(dst_path):
                os.makedirs(dst_path) 
            filesCopiedNum += copyFiles(src_path, dst_path)
        # 若源路径为文件,不重复则复制,否则无操作。
        elif os.path.isfile(src_path):               
            if not dstFiles.has_key(file):
                shutil.copyfile(src_path, 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()
</div>

</div>

您可能想查找下面的文章:

  • python 远程统计文件代码分享
  • python复制文件代码实现
  • 打开电脑上的QQ的python代码
  • python 实现文件的递归拷贝实现代码
  • 用python实现批量重命名文件的代码
  • python 实现文件的递归拷贝实现代码
  • 用python实现批量重命名文件的代码
  • Python 文件操作实现代码
  • Python 文件重命名工具代码

相关文章

  • Python通过poll实现异步IO的方法
  • Python字符串转换成浮点数函数分享
  • python中的五种异常处理机制介绍
  • 深入讲解Python编程中的字符串
  • python登录pop3邮件服务器接收邮件的方法
  • 举例讲解Python设计模式编程中的访问者与观察者模式
  • Python网络爬虫出现乱码问题的解决方法
  • Python算法应用实战之栈详解
  • 用Python的Django框架来制作一个RSS阅读器
  • Python内置函数bin() oct()等实现进制转换

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python动态参数用法实例分析
    • python算法学习之计数排序实例
    • Python中列表、字典、元组、集合数据结构整理
    • Python实现的飞速中文网小说下载脚本
    • Python全局变量操作详解
    • Python编程生成随机用户名及密码的方法示例
    • python实现linux下使用xcopy的方法
    • 用Python实现通过哈希算法检测图片重复的教程
    • python 正则式使用心得
    • Python实现FLV视频拼接功能

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有