博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件夹复制器
阅读量:6092 次
发布时间:2019-06-20

本文共 1194 字,大约阅读时间需要 3 分钟。

1 # -*- coding:utf-8 -*- 2 # Author:Sure Feng 3  4 import os 5 import multiprocessing 6 import time 7  8 def copy_dir(src_dir, file, dest_dir, queue): 9    """文件夹复制"""10    # 打开文件11    src_file = open((src_dir + "/" + file), "rb")12    dest_file = open(dest_dir + "/" + file, "wb")13    # 读写文件14    data = src_file.read()15    dest_file.write(data)16    # 传递进度17    queue.put(1)18    # 关闭文件19    src_file.close()20    dest_file.close()21 22 if __name__ == '__main__':23     # 获取源文件夹名24     src_dir = input("请输入源文件夹名称:")25     # 获取源文件夹内的文件列表名26     file_list = os.listdir(src_dir)27     # 获取目标文件夹28     dest_dir = src_dir + "_备份"29     os.mkdir(dest_dir)30     # 创建队列,显示进度31     queue = multiprocessing.Queue()32 33     # 创建多进程,完成文件复制34     for file in file_list:35         pro = multiprocessing.Process(target=copy_dir, args=(src_dir, file, dest_dir, queue))36         pro.start()37 38     complish_len = 039     while True:40         if complish_len == len(file_list):41             break42         complish_len += queue.get()43         time.sleep(0.4)44 45         print("\r 当前进度已完成 %.2f %%" % (complish_len/len(file_list) * 100), end="")

 

转载于:https://www.cnblogs.com/sure-feng/p/10325729.html

你可能感兴趣的文章
Windows下命令行下启动ORACLE服务
查看>>
从网络得到数据--Arduino+以太网
查看>>
删除重复记录(Mysql,SqlServer,Sqlite)
查看>>
vb sendmessage 详解1
查看>>
aaalogo写入中文出错的解决方法
查看>>
常用的一些SQL语句整理,也许有你想要的。
查看>>
JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载
查看>>
jquery用法大全
查看>>
Groonga 3.0.8 发布,全文搜索引擎
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
网卡驱动程序之框架(一)
查看>>
用Hibernate Tools生成Hibernate Mapping映射文件
查看>>
php 过滤html标签的函数
查看>>
css斜线
查看>>
2013年第44周三可惡的中國聯通
查看>>
mysql导数据库用到的语句
查看>>
跨库查询(OpenDataSource)与链接服务器(Linking Server)
查看>>
Redis实现分布式锁
查看>>
Linux原始套接字实现分析---转
查看>>
UIWindow 介绍:概述、作用、主要属性及方法
查看>>