多任务案例--文件夹copy.py
import os
import multiprocessing def copy_file(q,file_name,new_folder_name,old_folder_name):
with open(old_folder_name + "/" + file_name,"rb") as f1, open(new_folder_name + "/" + file_name,"wb") as f2:
content = f1.read()
f2.write(content)
q.put(file_name) def main():
# 1.获取文件夹名字
old_folder_name = input("请输入想要copy的文件夹的名字:")
# 2.创建一个新文件夹
try:
new_folder_name = old_folder_name + "[复件]"
os.mkdir(new_folder_name)
except:
# 如果创建失败直接pass
pass
# 3.获取文件夹里文件的名字
file_names = os.listdir(old_folder_name)
# 4.创建进程池
po = multiprocessing.Pool(5)
q = multiprocessing.Manager().Queue()
for file_name in file_names:
# 5.复制文件到新文件夹里去
po.apply_async(copy_file,(q,file_name,new_folder_name,old_folder_name)) po.close() # 计算数据
copy_ok_num = 0
while True:
new_file_name = q.get()
# 记录复制完成的数量
copy_ok_num+=1
print("\r拷贝的进度为%.2f %%" % (copy_ok_num * 100 / len(file_names)),end="")
if copy_ok_num >= len(file_names):
break if __name__ == '__main__':
main()
请输入想要copy的文件夹的名字:test
拷贝的进度为100.00 %
多任务案例--文件夹copy.py的更多相关文章
- Java 实现文件上传、下载、打包、文件copy、文件夹copy。
文件and文件夹copy package org.test; import java.io.*; public class FileCopy { /** * 复制单个文件 * * @param old ...
- 文件Copy和文件夹Copy
文件Copy和文件夹Copy using System.Collections.Generic; using System.Linq; using System.Text; using System. ...
- python-os创建文件夹-create_dir_if_not_exist.py
#!/bin/usr/env python3 __author__ = 'nxz' import os import argparse MESSAGE = '%s 文件夹已经存在' def creat ...
- iOS开发文件夹--Copy items if needed
蓝色文件夹 蓝色文件夹(folder)一般作为资源文件夹使用,与黄色文件夹的主要区别是不参与编译,所以说如果你在这些文件夹下编写的逻辑代码是不参与编译的,其他文件也不能直接引用它们,若引用其中文件需要 ...
- 文件夹copy器(多进程版)
import multiprocessing import os import time import random def copy_file(queue, file_name,source_fol ...
- python文件夹copy器(多进程版)
本节的练习的要求如下: 输入要拷贝文件夹的文件名称 读取该文件夹下的所有文件 启动5个进程来拷贝文件夹,将拷贝成功的文件名称放入队列中 主进程中显示文件拷贝的进度 代码如下: import multi ...
- 线程_multiprocessing实现文件夹copy器
import multiprocessing import os import time import random def copy_file(queue,file_name,source_fold ...
- C# 文件搬运(从一个文件夹Copy至另一个文件夹)
时常我们会遇到文件的复制.上传等问题.特别是自动化生产方面,需要对机台抛出的档案进行搬运.收集,然后对资料里的数据等进行分析,等等. Winform下,列举集中较常见的档案的搬运. 1 private ...
- 目前为止最简洁的C#文件夹Copy代码,不接受反驳
private static void CopyEntireDir(string sourcePath, string destPath) { foreach (string dirPath in D ...
随机推荐
- 构建C 程序
1, 单个文件的编排顺序 #include指令 #define指令 类型定义 外部变量的声明 除main函数之外的函数的原型 main函数的定义 其他函数的定义
- LeetCode 20. 有效的括号(Valid Parentheses)
20. 有效的括号 20. Valid Parentheses 题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须 ...
- C++ 根据两点式方法求直线并求两条直线的交点
Line.h #pragma once //Microsoft Visual Studio 2015 Enterprise //根据两点式方法求直线,并求两条直线的交点 #include"B ...
- c++实现的顺序栈
栈是一种运算受限的线性表,是一种先进后出的数据结构,限定只能在一端进行插入和删除操作,允许操作的一端称为栈顶,不允许操作的称为栈底 因此需要的成员变量如下 int *_stack; //指向申请的空间 ...
- SAS学习笔记52 Excel导入后日期错乱
读入Excel数据到SAS中,很小概率会遇到日期格式错乱,如:将Excel中的日期导入到SAS后就变成一个字符型的数字 在SAS中换算一下就可以更正
- elk 流程图
ELK流程图 单纯使用ElK实现分布式日志收集缺点: 1.logstash太多了,扩展不好. 2.读取IO文件,可能会产生日志丢失 3.不是实时性 这时候就需要引入 kafka. kafka基于主题模 ...
- pat天梯赛练习集合 L3-007 天梯地图
加了一些花的最短路,点的个数为500不需要堆优化,改一下dij的判断条件就可以了. 上代码: #include <iostream> #include <cstring> #i ...
- js实现CheckBox全选或者不全选
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">< ...
- centos6克隆虚拟机后,网络无法访问和启动
使用vmware安装centos6虚拟机时, 克隆虚拟机后无法访问网络. 原因是:产生了重复的网卡信息** 克隆后在70-persistent-net.rules文件中会多一行网卡信息,把第一行网卡信 ...
- angular中控制器之间传递参数的方式
在angular中,每个controller(控制器)都会有自己的$scope,通过为这个对象添加属性赋值,就可以将数据传递给模板进行渲染,每个$scope只会在自己控制器内起作用,而有时候需要用到其 ...