python多进程实现文件下载传输功能
作者:WangF0 时间:2022-06-27 02:22:41
本文实例为大家分享了python多进程实现文件下载传输功能的具体代码,供大家参考,具体内容如下
需求:
实现文件夹拷贝功能(包括文件内的文件),并打印拷贝进度
模块:
os模块
multiprocessing 模块
代码:
import multiprocessing
import os
def deal_file(old_dir,new_dir,file_name,queue):
# 打开以存在文件
old_file = open(os.path.join(old_dir,file_name),"rb")
# 创建新文件
new_file = open(os.path.join(new_dir,file_name),"wb")
# 循环将内容写入新文件
while True:
# 单行读取
data = old_file.readline()
# 如果有内容写入否则退出
if data:
new_file.write(data)
else:
break
# 关闭文件
old_file.close()
new_file.close()
# 向队列中添加值用以计数,参数可填任意值
queue.put(file_name)
def main():
# 创建用户输入文件的备份
old_dir = input("请输入文件名:")
new_dir = "备份"+old_dir
os.mkdir(new_dir)
# 列出文件夹内的文件列表
file_list = os.listdir(old_dir)
queue = multiprocessing.Queue(128)
for file_name in file_list:
pro = multiprocessing.Process(target=deal_file,args=(old_dir,new_dir,file_name,queue))
# 创建子进程
pro.start()
# 定义变量用以计数
num = 0
while True:
# 取出队列中的值
queue.get()
# 计数器+1
num += 1
# 打印下载进度
print("\r文件已下载%.2f %%" % (num/len(file_list)*100),end="")
# 如果计数等于文件长度提示完成退出
if num == len(file_list):
print("文件下载完成")
break
if __name__ == "__main__":
main()
来源:https://blog.csdn.net/wf134/article/details/78546232
标签:python,文件下载,文件传输
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
2008年情人节各网站节日Logo欣赏
2008-02-17 14:12:00
![](https://img.aspxhome.com/file/UploadPic/20082/17/2008217141834880s.gif)
JAVA正则表达式 Pattern和Matcher
2023-07-01 19:13:53
JS 添加千分位与去掉千分位的示例
2010-08-20 06:18:20
php ajax异步读取rss文档数据
2023-10-17 19:59:02
使用FORFILES命令来删除SQLServer备份的批处理
2012-05-08 06:47:06
CSS兼容性(IE和Firefox)技巧大全
2010-07-29 12:29:00
降低锁竞争 减少MySQL用户等待时间
2011-03-11 18:58:00
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2023-10-03 00:48:07
![](https://img.aspxhome.com/file/2023/9/55489_0s.png)
asp 取一个数的整数 但不是四舍五入,只要有小数,就取大于这个数的整数
2011-03-17 10:34:00
php json_encode与json_decode详解及实例
2023-07-04 22:46:27
MySQL 5.0.16的乱码问题解决方法
2011-12-14 18:33:24
从MySQL4.0向MySQL5迁移数据
2007-11-19 13:11:00
![](https://img.aspxhome.com/file/UploadPic/200711/19/20071119131517223s.png)
详解基于pycharm的requests库使用教程
2023-08-12 09:40:39
![](https://img.aspxhome.com/file/2023/0/64740_0s.jpg)
Python实现企业微信机器人每天定时发消息实例
2023-09-04 22:08:40
![](https://img.aspxhome.com/file/2023/9/64709_0s.jpg)
python用10行代码实现对黄 色图片的检测功能
2023-11-16 23:48:33
js动态显示当前日期,时间和星期代码
2007-08-14 12:31:00
注册表单的细节问题
2008-05-24 08:43:00
![](https://img.aspxhome.com/file/UploadPic/20085/24/200852485213503s.jpg)
python如何在终端里面显示一张图片
2023-08-23 01:34:00
![](https://img.aspxhome.com/file/2023/6/62606_0s.png)
php中json 序列化为 [] 的弊端
2023-05-25 00:14:30
Oracle密码文件的使用和维护第1/3页
2010-07-30 12:43:00