Python学习---基于进程池的文件夹copy器案例

news2024/10/7 4:50:05

 

# 思路:
# 1、定义变量,保存源文件和目标文件夹的路径
# 2、在目标路径创建新的文件夹
# 3、获取源文件夹中的所有文件(列表)
# 4、遍历列表得到所有文件名
# 5、定义函数进行文件拷贝
# 文件拷贝函数:
# 参数:源文件路径,目标文件路径,文件名
# 1、拼接源文件和目标文件的具体路径
# 2、打开源文件﹐创建目标文件
# 3、读取源文件的内容·写入到目标文件中(while)
import multiprocessing
import os


def copy_work(source_dir, dest_dir, file_name):
    """
    根据参数拷贝文件
    :param source_dir: 源文件路径
    :param dest_dir: 目标文件路径
    :param file_name: 文件名
    :return:
    """
    # 1、拼接源文件和目标文件的具体路径
    source_path = source_dir + "/" + file_name
    dest_path = dest_dir + file_name
    # print(source_path, dest_path)
    # 2、打开源文件﹐创建目标文件
    # 3、读取源文件的内容·写入到目标文件中(while)
    with open(source_path, "rb") as source_file:
        with open(dest_path, "wb") as dest_file:
            while True:
                file_data = source_file.read(1024)
                if file_data:
                    dest_file.write(file_data)
                else:
                    break


if __name__ == '__main__':
    # 1、定义变量,保存源文件和目标文件夹的路径
    source_dir = "./test"
    dest_dir = "C:/Users/MLoong/Desktop/文件拷贝器/"
    # 2、在目标路径创建新的文件夹
    try:
        os.mkdir(dest_dir)
    except Exception as e:
        print("文件夹已经存在!")
    # 3、获取源文件夹中的所有文件(列表)
    file_list = os.listdir(source_dir)
    # 创建进程池
    pool = multiprocessing.Pool(3)
    # 4、遍历列表得到所有文件名
    for file_name in file_list:
        # print(file_name)
        # 5、定义函数进行文件拷贝
        #     copy_work(source_dir,dest_dir,file_name)
        pool.apply_async(copy_work, (source_dir, dest_dir, file_name))
    pool.close()
    pool.join()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1687967.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于manifest文件批量将coding的仓库导入gitlab中

文章目录 写在前面的话背景编写manifest文件最终效果 写在前面的话 前面有讲过通过manifest清单导入项目到gitlab中,但是实际的操作是不同gitlab实例之间的操作,然而对于在不同gitlab实例的repo迁移而言,显然direct transfer会更合适。 背景…

房地产画册制作成手机在线翻页效果

​随着科技的飞速发展,移动互联网已经深入到人们的日常生活中。在这个数字化的时代,房地产行业也紧跟潮流,将画册制作成手机在线翻页效果,以满足消费者的阅读习惯。 房地产画册制作成手机在线翻页效果,不仅能够满足消费…

Win10【无线显示器】安装失败(无法添加)解决中。。。

目录 ■失败现象 ■解决方法 【服务启动1】 【服务确认】 【服务启动2】 参考 ■查看电脑是否支持【Miracast无线投屏功能】 参考2 ■解决方法(对我的这台电脑有效) ■解决后的效果 ■连接时,出现【无法在此设备上查看受保护内容。…

时空扭曲:重温相对论的终极挑战,探寻真理的脚步

大家都知道,相对论是爱因斯坦提出的划时代理论,为人类认知时空和引力做出了革命性贡献。但这个理论真的万无一失吗?近日,一项新研究提出了测试时间扭曲的新方法,或许能让我们重新审视相对论在宇宙大尺度上的适用性。 时…

安卓高级控件(下拉框、列表类视图、翻页类视图、碎片Fragment)

下拉框 此小节介绍下拉框的用法以及适配器的基本概念,结合对下拉框Spinner的使用说明分别阐述数组适配器ArrayAdapter、简单适配器SimpleAdapter的具体用法与展示效果。 下拉框控件Spinner Spinner是下拉框控件,它用于从一串列表中选择某项&#xff0…

时代终结,微软宣布淘汰VBScript;Flink漏洞被广泛利用;Grandoreiro银行木马强势回归,1500多家银行成攻击目标 | 安全周报0524

揭秘SolarMarker恶意软件:多层次基础设施让清除工作陷入困境 Recorded Future的新发现表明,SolarMarker信息窃取恶意软件背后的持续威胁行为者已经建立了一个多层次的基础设施,以使执法部门的清除工作变得复杂。 该公司在上周发布的一份报告…

三菱机械手维修控制器故障

在工业自动化领域,三菱工业机器人凭借其高性能、高可靠性和易用性,受到了广泛应用。然而,随着时间的推移,可能会出现MITSUBISH工业机械臂控制器故障,需要进行三菱机械手维修。 一、MITSUBISH机械手控制器故障诊断 在进…

如何基于springboot构建cas最新版源码?

环境准备 下载JDK21 https://download.oracle.com/java/21/archive/jdk-21.0.2_windows-x64_bin.zip下载gradle 8.5并配置环境变量 https://gradle.org/next-steps/?version8.5&formatbin下载项目git clone http://gitlab.ruishan.cc/meta/anka-authentication.git 开始…

C++---运算符重载

运算符重载介绍 在类中重新定义运算符,赋予运算符新的功能以适应类的运算,就称为运算符重载。 运算符重载是一种形式的C多态,它使得对象操作更直观,本质上也是属于函数重载。 实际上,我们已经在不知不觉之中使用了运算符重载。例如&#xff…

ElasticSearch操作之重置密码脚本

ElasticSearch操作之重置密码脚本 #!/bin/bash # 使用样例 ./ES密码重置.sh 旧密码 新密码# 输入旧密码 es_old_password$1# 设置新的密码变量 es_password$2# 正确响应 es_reponse{"acknowledged":true}# 检查Elasticsearch是否在运行 if pgrep -f elasticsearch &g…

用WPS将多张图片生成一个pdf文档,注意参数设置

目录 1 新建一个docx格式的文档 2 向文档中插入图片 3 设置页边距 4 设置图片大小 5 导出为pdf格式 需要把十几张图片合并为一个pdf文件,本以为很简单,迅速从网上找到两个号称免费的在线工具,结果浪费了好几分钟时间,发现需要…

电影《朝云暮雨》观后感

上周看了电影《朝云暮雨》,看完之后,感觉自己整个人都不太好了,也不是说电影太差,只是觉得电影没有传达正能量,让人很不舒服。 (1)演技在线 对于著名的演员“范伟”,或者说&#x…

邮件系统数据面临的安全问题及解决方法

随着电子邮件的普及,邮件系统已成为企业、学校、个人等用户之间进行信息交流的重要工具。然而,随着数据量的增加和用户对邮件系统的依赖,邮件系统数据安全问题也逐渐凸显。下面U-Mail技术张工就给大家讲解一下邮件系统数据面临的主要安全问题…

权限维持--windows

隐藏文件 ①文件属性隐藏 如何排查: 使用dir命令无法看到有特殊属性的文件需使用/a ②真隐藏 相当于给原本的文件增加系统文件属性、存档文件属性、只读文集属性、隐藏文件属性 如何排查: 取消受保护的操作系统文件 ③利用ADS隐藏 使用数据流 echo &…

远动通讯屏的原理和应用

远动通讯屏的原理和应用 远动通讯屏,是一种集显示和远程控制于一体的智能化控制设备。它可以通过网络、通信线路等方式实现与远程设备的通讯和交互,从而实现远程监控和控制。 远动通讯屏实现远程控制的核心原理是基于PLC(Programmable Logic …

SpringCloud Alibaba Nacos分类配置--多方案配置隔离

文章目录 Nacos 分类配置(实现配置隔离)1.DataID 方案需求分析/图解配置实现测试 2.Group 方案需求分析/图解配置实现修改application.yml修改bootstrap.yml测试 3.Namespace 方案需求分析/图解配置实现修改application.yml修改bootstrap.yml测试 Namespace/Group/Data ID 关系…

Mac下QT开发环境搭建详细教程

QT Qt是一个跨平台的C应用程序框架,用于开发具有图形用户界面(GUI)的应用程序,同时也可用于开发非GUI程序,比如控制台工具和服务器。Qt是设计成通用、可移植和高效的,它广泛应用于全球的企业和开发者社区中…

【译】MySQL 组复制 - 部分网络故障对性能的影响

原文地址:MySQL Group Replication – Partial Network Failure Performance Impact 在这个由两部分组成的博客系列中,我想介绍一些使用组复制的故障转移场景。在第一部分中,我将讨论我在撰写这些文章时发现的一种有趣的行为和性能下降。在第…

Kubernetes中 Requests 和 Limits 的初步理解

1 灵魂拷问 我们在使用 Kubernetes 时是否遇到以下情况: 你会不会部署负载的时候将 CPU requests/limits 设置得过低或过高?你会不会部署负载的时候将 内存 requests/limits 设置得过低或过高?又或者你根本不设置 requests/limits&#xff…

【Linux网络编程】IO多种转接之Reactor

Reactor 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 基于上一篇epoll的学习,现在我们也知道epoll的工作模式有两种&#xff0c…