1. 将一个目录树完全复制到另外一个目录下面

  1. import os, sys
  2.  
  3. """
  4. 复制目录树
  5. """
  6.  
  7. maxloadsize = 1024 * 1024
  8.  
  9. def copyfile(frompath, topath, maxloadsize= maxloadsize):
  10. """
  11. 单个文件的复制
  12. :param frompath:原文件
  13. :param topath: 复制到的文件
  14. :param maxloadsize: 复制最大块
  15. :return:
  16. """
  17. fromfilename = os.path.split(frompath)[1]
  18. (dirpath,filename) = os.path.split(topath)
  19. if fromfilename != filename:
  20. topath = os.path.join(dirpath, fromfilename)
  21. print("changed copy file name:" + topath)
  22. if os.path.getsize(frompath) <= maxloadsize:
  23. with open(frompath, "rb") as fromfile:
  24. with open(topath, "wb") as tofile:
  25. bytes = fromfile.read(maxloadsize)
  26. tofile.write(bytes)
  27. else:
  28. with open(frompath, "rb") as fromfile:
  29. with open(topath, "wb") as tofile:
  30. while True:
  31. bytes = fromfile.read(maxloadsize)
  32. if not bytes:break
  33. tofile.write(bytes)
  34.  
  35. def copytree(dirfrom, dirto, verbose = 0):
  36. if not os.path.isdir(dirto):
  37. os.mkdir(dirto)
  38. fount = tcount =0
  39. for filename in os.listdir(dirfrom):
  40. pathfrom = os.path.join(dirfrom, filename)
  41. pathto = os.path.join(dirto, filename)
  42. if not os.path.isfile(pathfrom):
  43. # 目录循环copy
  44. try:
  45. os.mkdir(pathfrom)
  46. fc,tc = copytree(pathfrom, pathto)
  47. fount += fc
  48. tcount += tc
  49. except:
  50. print("Error copying from {0} to {1}".format(pathfrom, pathto))
  51. else:
  52. # 文件直接copy
  53. try:
  54. print("copy from {0} to {1}".format(pathfrom, pathto))
  55. copyfile(pathfrom, pathto)
  56. fount += 1
  57. except:
  58. print("Error copying from {0} to {1}".format(pathfrom, pathto))
  59. return (fount, tcount)
  60.  
  61. if __name__ == '__main__':
  62. #copyfile("../testdir1/test1.pdf", "../testdir/testfdf.pdf")
  63. copytree("../lession6","../less")

  

python 小程序 复制目录树的更多相关文章

  1. python 小程序 比较目录间的差异

    比较目录间的差异: I 只按照名称做了比较,如果目录的文件名称相同,但是内容不同脚本认为为相同文件 II 针对目录下面的目录没有循环比较,只是比较了目录的名称 import sys, os def d ...

  2. 怎么样通过编写Python小程序来统计测试脚本的关键字

    怎么样通过编写Python小程序来统计测试脚本的关键字 通常自动化测试项目到了一定的程序,编写的测试代码自然就会很多,如果很早已经编写的测试脚本现在某些基础函数.业务函数需要修改,那么势必要找出那些引 ...

  3. Day1:第一个python小程序

    Day1:第一个python小程序与开发工具Pycharm 一.Hello World C:\Users\wenxh>python Python 3.6.2 (v3.6.2:5fd33b5, J ...

  4. 小程序的目录结构/配置介绍/视图层wxml数据绑定/双线程模型/小程序的启动流程

    安装好微信小程序开发软件,创建项目 小程序文件结构和传统web对比 结构 传统web 微信小程序 结构 HTML WXML 样式 CSS WXSS 逻辑 Javascript Javascript 配 ...

  5. Python 小程序,对文件操作及其它

    以下是自己写的几个对文件操作的小程序,里面涉及到文件操作,列表(集合,字典)的运用等.比方说,从文件里读取一行数据.分别存放于列表中,再对列表进行操作.如去掉里面的反复项.排序等操作. 常见对文件里行 ...

  6. Python获取程序运行目录和脚本目录

    Python获取程序运行目录和脚本目录 import os import sys #获取脚本所在目录 print os.path.split( os.path.realpath( sys.argv[0 ...

  7. 3-微信小程序开发(小程序的目录结构说明)

    https://www.cnblogs.com/yangfengwu/p/10050784.html 源码下载链接: 或者 这节先说一下小程序的目录结构 自行根据  https://www.cnblo ...

  8. 微信小程序结构目录、配置介绍、视图层(数据绑定,运算,列表渲染,条件渲染)

    目录 一.小程序结构目录 1.1 小程序文件结构和传统web对比 1.2 基本的项目目录 二.配置介绍 2.1 配置介绍 2.2 全局配置app.json 2.3 page.json 三.视图层 3. ...

  9. 一个有意思的Python小程序(全国省会名称随机出题)

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 最近比较迷Python,仿照<Python编程快速上手>8.5写了一个随机出卷的小 ...

随机推荐

  1. 分享api接口验证模块

    一.前言 权限验证在开发中是经常遇到的,通常也是封装好的模块,如果我们是使用者,通常指需要一个标记特性或者配置一下就可以完成,但实际里面还是有许多东西值得我们去探究.有时候我们也会用一些开源的权限验证 ...

  2. Could not find a suitable SDK to target

    安装windows-10-s‌​dk 应该可解决此问题 windows-10-s‌​dk下载地址: developer.microsoft.com/en-us/windows/downloads/wi ...

  3. spring aop对service层日志和异常的处理

    1.aop是什么 AOP是Aspect Oriented Programming的缩写,意思是面向切面编程,与OOP(Object Oriented Programming)面向对象编程对等,都是一种 ...

  4. PHP变量

    变量的声明 PHP变量声明必须是$(美元符号)+变量名进行命名,同时在=(赋值操作符)后进行赋值 声明后的变量不是仅可以在一个<?php 这里是php代码 ?>使用,它还可以在当前页面所有 ...

  5. 高性能 TCP & UDP 通信框架 HP-Socket v3.4.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  6. CSS3 @font-face的使用

    首先我们一起来看看@font-face的语法规则: @font-face { font-family: <YourWebFontName>; src: <source> [&l ...

  7. EasyUI+Knockout实现经典表单的查看、编辑

    此文章是基于 1. 搭建SpringMVC+Spring+Hibernate平台 2. 自制xml实现SQL动态参数配置 3. 利用DetachedCriteria构建HQL参数动态匹配 4. 常用日 ...

  8. 深度剖析 | 基于大数据架构的BI应用

    说起互联网.电商的数据分析,更多的是谈应用案例,如何去实践数据化管理运营.而这里,我们要从技术角度分享关于数据的技术架构干货,如何应用BI. 原文是云猴网BI总经理王卫东在帆软大数据上的演讲,以下是整 ...

  9. Exploitation with Social Engineering Toolkit SET

    下面演示如何使用S.E.T工具创建Payload并配置Armitage实现目标主机自动上线. 打开S.E.T工具选择第一项,进行Attacks配置. 选择4创建一个Payload和Listener. ...

  10. View and Data API Tips : Conversion between DbId and node

    By Daniel Du In View and Data client side API, The assets in the Autodesk Viewer have an object tree ...