python 小程序 复制目录树

时间:2021-12-29 22:38:49

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

import os, sys

"""
复制目录树
""" maxloadsize = 1024 * 1024 def copyfile(frompath, topath, maxloadsize= maxloadsize):
"""
单个文件的复制
:param frompath:原文件
:param topath: 复制到的文件
:param maxloadsize: 复制最大块
:return:
"""
fromfilename = os.path.split(frompath)[1]
(dirpath,filename) = os.path.split(topath)
if fromfilename != filename:
topath = os.path.join(dirpath, fromfilename)
print("changed copy file name:" + topath)
if os.path.getsize(frompath) <= maxloadsize:
with open(frompath, "rb") as fromfile:
with open(topath, "wb") as tofile:
bytes = fromfile.read(maxloadsize)
tofile.write(bytes)
else:
with open(frompath, "rb") as fromfile:
with open(topath, "wb") as tofile:
while True:
bytes = fromfile.read(maxloadsize)
if not bytes:break
tofile.write(bytes) def copytree(dirfrom, dirto, verbose = 0):
if not os.path.isdir(dirto):
os.mkdir(dirto)
fount = tcount =0
for filename in os.listdir(dirfrom):
pathfrom = os.path.join(dirfrom, filename)
pathto = os.path.join(dirto, filename)
if not os.path.isfile(pathfrom):
# 目录循环copy
try:
os.mkdir(pathfrom)
fc,tc = copytree(pathfrom, pathto)
fount += fc
tcount += tc
except:
print("Error copying from {0} to {1}".format(pathfrom, pathto))
else:
# 文件直接copy
try:
print("copy from {0} to {1}".format(pathfrom, pathto))
copyfile(pathfrom, pathto)
fount += 1
except:
print("Error copying from {0} to {1}".format(pathfrom, pathto))
return (fount, tcount) if __name__ == '__main__':
#copyfile("../testdir1/test1.pdf", "../testdir/testfdf.pdf")
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. 小程序的目录结构&sol;配置介绍&sol;视图层wxml数据绑定&sol;双线程模型&sol;小程序的启动流程

    安装好微信小程序开发软件,创建项目 小程序文件结构和传统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-微信小程序开发&lpar;小程序的目录结构说明&rpar;

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

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

    目录 一.小程序结构目录 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. Palindromic Number &lpar;还是大数&rpar;

    A number that will be the same when it is written forwards or backwards is known as a Palindromic Nu ...

  2. Zookeeper 4、Zookeeper开发

    1.登录Zookeeper客户端 #通过zkCli.sh可以登录到Zookeeper $ cd /usr/local/zookeeper-3.4.6/bin $ ./zkCli.sh #如果显示下面这 ...

  3. Android供TextView添加多个点击文字

    我们使用社会性软件的过程中会或多或少像别人的帖子点,图. : 能够看到用户页面显示出来的仅仅是点了赞的用户的名称,点击这些名称能够进入到该用户的主页.我们就来实现相似的效果.直接上代码吧. @Over ...

  4. iOS开发-简单的循环结构分析

    1.while循环 while (循环条件) {         循环体: } // 1.定义循环变量 ; // 2.循环条件 ) { // 3.循环体 printf("%d\n" ...

  5. 笔记3 装配Bean总结

    一.自动化装配bean 1.组件扫描 2.自动装配 CompactDisc.java package Autowiring; public interface CompactDisc { void p ...

  6. C语言之实现随机数产生算法

    随机数,也就是在不同的时刻产生不同的数值.在UNIX操作系统和window的操作系统上,我们知道有一个函数rand,它就是用来产生随机数的函数API接口,那么它的原理如何实现? 如果约定a1=f(se ...

  7. WinForm 国际化的一些问题

    国际化 我之前 WinForm 国际化都是凑一些代码搞起(请看文后 Reference). 最近发现还有个官方国际化方法: 首先设置 Form 的 Localizable 属性为 true 选择 Fo ...

  8. RHCE

    RHCE 配置 配置firewalld防火墙 配置firewalld端口转发 自定义用户环境 配置链路聚合 配置IPV6地址 配置本地邮件服务

  9. PHP数据库连接mysql与mysqli的区别与用法

    一.mysql与mysqli的概念相关: 1.mysql与mysqli都是php方面的函数集,与mysql数据库关联不大. 2.在php5版本之前,一般是用php的mysql函数去驱动mysql数据库 ...

  10. C&num;&lowbar;方法的重载

    方法的重载是一种操作性多态,有的时候,可能需要在多个不同的实现中对不同的数据执行相同的逻辑操作,以writeline方法为例,有时可能想他传递一个整数.两者的具体实现肯定是不同的,但在逻辑上,这个方法 ...