多进程copy文件
from multiprocessing import Pool,Manager
import os,time
def copyFileTask(fileName,oldFolderName,newFolderName,queue):
fr = open(oldFolderName+"/"+fileName,'r',encoding='UTF-8')
fw = open(newFolderName+"/"+fileName,'w',encoding='UTF-8')
#复制
while True:
content = fr.read(1024)
if len(content) == 0:
break
fw.write(content)
#关闭文件
fr.close()
fw.close()
queue.put(fileName)
def main():
oldFolderName = 'test'#input("请输入要复制的文件夹名字:")
#创建目录
newFolderName = oldFolderName+"[复件]"
os.mkdir(newFolderName)
#获取文件列表
fileList = os.listdir(oldFolderName)
#使用多进程的方式复制
pool = Pool(5)
#消息队列
queue = Manager().Queue()
for file in fileList:
#copyFileTask(file,oldFolderName,newFolderName,queue)
pool.apply_async(copyFileTask,args=(file,oldFolderName,newFolderName,queue))
num = 0
total = len(fileList)
while num<total:
queue.get()
num += 1
rate = num/total*100
print('\r复制的进度是:%.2f%%'%rate,end="")
#关闭进程池,不再接受新的进程
#pool.close()
#主进程阻塞等待子进程的退出
#pool.join()
if __name__ == '__main__':
t_start = time.time()
main()
t_stop = time.time()
print("\n执行完毕,耗时%0.2f"%(t_stop-t_start))
单进程:
C:\Users\Administrator>python d:\python\copy.py
复制的进度是:100.00%
执行完毕,耗时6.53
多进程:
C:\Users\Administrator>python d:\python\copy.py
复制的进度是:100.00%
执行完毕,耗时6.59
多进程copy文件的更多相关文章
- 5 多进程copy文件
1.如何进行开发? 2.版本1:程序大框架 #1.创建一个文件夹 #2.获取old文件夹中所有的文件名字 #3.使用多进程的方式copy原文件夹中的所有文件到新文件夹中 3.版本2:创建一个文件夹 1 ...
- Cocos2d-x建工程时避免copy文件夹和库
方法一:(官方做法) 打开F:\cocos2d-1.0.1-x-0.9.1目录下的cocos2d-win32.vc2010.sln文件,然后右键点击解决方案,选择"添加"—&quo ...
- Linux跨用户copy文件
foo用户home目录下有一文件file.txt,要将其copy至bar用户的home目录.Linux对用户home目录有严格的权限限制,非owner用户或者同group用户无权限读写,除非是root ...
- Windows服务器Pyton辅助运维--01.自动Copy文件(文件夹)到远程服务器所在目录
Windows服务器Pyton辅助运维 01.自动Copy文件(文件夹)到远程服务器所在目录 开发环境: u Web服务器: Windows Server 2008 R2 SP1 IIS 7.5 u ...
- [转]Cocos2d-x建工程时避免copy文件夹和库
原文链接: http://www.cnblogs.com/andyque/archive/2011/09/27/2192920.html 在上一篇教程中,我们演示了如何使用VS2010来新建一个工程 ...
- 怎么从docker中copy文件到 本机
怎么从docker中copy文件到 本机 docker cp <containerId>:/file/path/within/container /host/path/target
- php利用curl实现多进程下载文件类
批量下载文件一般使用循环的方式,逐一执行下载.但在带宽与服务器性能允许的情况下,使用多进程进行下载可以大大提高下载的效率.本文介绍PHP利用curl的多进程请求方法,实现多进程同时下载文件. 原理: ...
- 从主机系统向虚拟机系统里面copy 文件
从主机系统向虚拟机系统里面copy 文件: 一:请确保你的虚拟机里面安装了 VMTools 1:安装VMTools 2: 进入虚拟机系统里面,如果没有自动运行 VMtool安装程序,请打开我的电脑,手 ...
- Django多进程日志文件问题
Django多进程日志文件问题 最近使用Django做一个项目.在部署的时候发现日志文件不能滚动(我使用的是RotatingFileHandler),只有一个日志文件. 查看Log发现一个错误消息:P ...
随机推荐
- 配置 SQL Server 2008 Email 发送以及 Job 的 Notification通知功能
SQL Server 2008配置邮件的过程就不写了,网上的案例太多了. http://www.cnblogs.com/woodytu/p/5154526.html 这个案例就不错. 主要写下配置完后 ...
- arcgis_SDE安装步骤
弄了将近一个星期的Oracle和ArcSDE终于让我给弄好了!下面把过程跟大家分享一下: 首先是Oracle10gR2的安装,在Oracle的官方网站上可以下到Oracle10gR2的安装程序,安装过 ...
- WIN7系统 如何上传文件到FTP服务器中
https://zhidao.baidu.com/question/214644671.html
- Springboot 静态资源
说下默认映射的文件夹有: classpath:/META-INF/resources classpath:/resources classpath:/static classpath:/public ...
- ./configure: error: the HTTP rewrite module requires the PCRE library解决
./configure: error: the HTTP rewrite module requires the PCRE library解决 有时候,我们需要单独安装nginx,来处理大量的下载 ...
- Real Time Render 4
[Real Time Render 4] 1.Radiometry(辐射测试) deals with the measurement of electromagnetic(电磁) radiation( ...
- User-Defined Components Must Be Capitalized
[User-Defined Components Must Be Capitalized] When an element type starts with a lowercase letter, i ...
- PLM修改数据库密码
在WINDCHILL SHELL中执行以下命令: xconfmanager -s wt.pom.dbPassword=数据库密码 -t db/db.properties -p 重启服务
- jackson支持LocalDate等java8时间
pom文件增加依赖: <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <arti ...
- python之列表、元组、字典学习
list特征列表中的元素可以是数字和字符串,列表,布尔值,列表中也可以嵌套列表 a=[1,2,3,"qqq","无"] b=[1,2,3,[1,2,3,&quo ...