1. 使用进程的思想来实现多任务,从而来完成一个简单的文件下载器,可以实现将一个文件中的所有文件下载到指定文件夹下
  2. 代码实例
import os
import multiprocessingdef copy_file(q, file_name, old_folder_name, new_folder_name):# print("===拷贝==%s从%s拷贝到%s" % (file_name, old_folder_name, new_folder_name))old_f = open(old_folder_name + "/" + file_name, "rb")content = old_f.read()old_f.close()new_f = open(new_folder_name + "/" +file_name, "wb")new_f.write(content)  # 这里注注意要下载的文件夹下的文件夹是写入的new_f.close()# 如果拷贝完文件就向队列中写入一个消息表明已经完成q.put(file_name)def main():# 获取用户要拷贝文件夹的名字old_folder_name = input("请输入要拷贝的文件夹名字:")# 创建一个新的文件夹try:  # 防止创建的文件夹存在报错new_folder_name = old_folder_name + "_other"os.mkdir(new_folder_name)  # 使用os模块中的mkdri来创建文件夹,文件夹存在就报错except:pass# 获取文件夹中所有待拷贝的文件的名字:listdir(文件夹的位置)会返回文件夹中所有文件的名字,文件夹也会被返回file_names = os.listdir(old_folder_name)  # os.listdir(文件的路径,直接写文件名则只能在当前文件所在的目录下进行查找)返回的是一个列表# print(file_names)# 创建进程池po = multiprocessing.Pool(5)# 创建队列:用来判断拷贝了多少文件q = multiprocessing.Manager().Queue()  # 在进程池中使用队列必须要用Manager()下的Queue()类来创建# 想进程池中添加拷贝文件的任务for file_name in file_names:po.apply_async(copy_file, (q, file_name, old_folder_name, new_folder_name))po.close()# po.join()  # 这里通过while循环判断是否拷贝完毕来结束主进程所以不需要等待子进程执行完毕all_file_num = len(file_names)# print("原文件共有%d个文件" % all_file_num)cp_file_num = 0  # 判定已经拷贝文件的数量temp = 1while True:# file_name_get = q.get()q.get()  # 当队列中没有数据时会堵塞# print("第%d个文件%s已经完成拷贝" % (temp, file_name_get))print("\r拷贝的进度为%.2f%%" % ((cp_file_num + 1) / all_file_num * 100),end="")  # \r的作用是返回当前鼠标所在位置的行首# temp += 1cp_file_num += 1if cp_file_num == all_file_num:  # 通过判断是否拷贝完毕来结束子进程print("")breakif __name__ == '__main__':main()

文件夹下载器案例实战相关推荐

  1. Python 连接FTP服务器并实现文件夹下载实例演示,python区分ftp目录下文件和文件夹方法,ftp目录下包含中文名问题处理

    Python 连接 FTP 服务器并实现文件夹下载实例演示 第一章:连接 FTP 服务器并实现文件夹下载 ① 连接 FTP 服务器 ② 进入指定目录并显示文件信息 ③ 区分文件和文件夹名 ④ 文件夹名 ...

  2. iOS GoldRaccoon第三方FTP文件夹下载失败原因

    一.问题描述:1.下载失败报错: 文件写入失败Error Domain=NSCocoaErrorDomain Code=512 "未能将文件"jquery_1_10_2_min.j ...

  3. 亿彩文件批量下载器 v3.0

    简介: 亿彩文件批量下载器,主要用于对已知的网络文件的Url,将其批量下载到本地上,并根据需要自动更名下载后的文件,功能丰富强大;支撑大容量几十万几百万条的下载,支持特殊网址的导入,支持保留网络路径结 ...

  4. android 自定义文件夹管理器

    自定义android 文件夹管理器 由于近期项目要求,要客户可以自己选择文件夹路径,试了原生的文件夹管理器太难看了,而且还必须选择文件才行,PS:本人菜鸟,只能找到这样的原生方法,还请大佬勿喷,然后没 ...

  5. XP中i386/lang的文件夹下载

    XP中i386/lang的文件夹下载 这种有两种解决方法(其实也是一种啦)一种是去网上直接下载i386/lang的文件夹,第二种就是去网上下载XP的原版光盘镜像,用虚拟光驱加载下载下来的ISO光盘镜像 ...

  6. python学习之多进程小练笔:简版多进程文件夹copy器

    简版多进程文件夹copy器 在学习python多进程后,为了能快速掌握其中的知识点,就写了一个简单的多进程文件copy器. 主要的功能:在输入想要复制的文件后就会自动形成一个复制好的文件,还会有传输进 ...

  7. Android 编程之入门开发文件夹管理器开发详细讲解-1

    在我们的手持设备中,一般都会自带设备公司自己开发的文件管理系统.拍照系统之类的东东,今天我给大伙说说入门级开发的文件夹管理器,代码贼少 总共就6个类吧,没有夹杂其他外部应用,就是一个纯文件夹管理器 A ...

  8. WIN10右键文件夹资源管理器会卡死

    WIN10右键文件夹资源管理器会卡死 现象描述 近期在win10系统环境使用过程中,右键文件夹后资源管理器莫名卡死,无法正常操作.同时在桌面空白位置右键时,可正常跳出菜单. 解决方法 在网上找了许多方 ...

  9. QFtp实现文件夹下载

    QFtp实现文件夹下载类,希望能帮到有需要的人 完整文件资源链接 https://download.csdn.net/download/ufe_1/12838957 以下是cpp源码: ftpDown ...

  10. 梦幻默认服务器文件夹修改器,【梦幻仙境V3.96服务端】梦幻最新完美开心版带存档与修改器时代梦幻最新5.2版本...

    [梦幻仙境V3.96服务端]梦幻最新完美开心版带存档与修改器时代梦幻最新5.2版本 梦幻仙境这个版本智能玩到109级.玩过这个梦战系列改版的都知道.就不介绍了.因为作者太垃圾了.但是游戏可玩性还是很高 ...

最新文章

  1. UVA1626 括号序列 Brackets sequence(区间DP匹配括号,输出匹配方案)
  2. BCGControlBar教程:Outlook Bars
  3. 只能在栈上或者堆上创建对象
  4. 电脑上安装了多个版本的nodejs,如何知道node命令调用的哪一个
  5. java方法重载_Java方法的重载
  6. OpenCV学习笔记——判断两张图的相似度
  7. 各个阶级的前端 必须掌握的基本技能汇总
  8. 单元测试 - mock异常
  9. python库管理_Python中管理数据库
  10. IDEA中识别Git上新加的分支
  11. 周志华机器学习西瓜书速记第一章绪论
  12. SQL语句实现增删改查(1)
  13. 扁平卡通风毕业论文答辩PPT模板
  14. sshv2 mitm工具jmitm2的使用记录
  15. Android蓝牙4.0单车锁应用实例开发
  16. RT-Thread柿饼控件(5)-- ProgressBar
  17. 免费赠送20个帆布包和2个咖啡杯活动规则必看(会搜索+复制粘贴就行)
  18. 门诊挂号c语言程序代码,C语言版医院管理系统
  19. 目前为止学习过的循环解析过程
  20. design短语的用法总结_design的用法

热门文章

  1. Geoserver发布OSM官网地图
  2. sqllabs详解与知识点汇总(内含代码审计)
  3. HTCVIVE无线套装安装后unityvr项目无法在头盔中显示
  4. 赛码网刷题python
  5. PuTTY使用复制粘贴
  6. MOTO不相信眼泪!艰难回归!你,准备好了吗?
  7. Android P Asan使用总结
  8. Typescript基础知识--学习笔记
  9. 如何开发Chrome扩展程序
  10. ibm tivoli_使用Tivoli®Composite Application Manager监视Tivoli®Access Manager WebSEAL服务器事务以进行响应时间跟踪