一个多进程拷贝某个目录下的文件的程序代码(有进度显示)import os import multiprocessing def copy_file(q, file_name, old_folder_name, new_folder_name): # 完成文件的复制的任务 # print("=========>>>>>模拟拷贝文件:%s------->%s 文件名:%s" % (old_folder_name, new_folder_name, file_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 + "副本" os.mkdir(new_folder_name) except: pass # 获取文件夹中要拷贝的文件的名字 file_names = os.listdir(old_folder_name) #print(file_names) # 创建进程池 po = multiprocessing.Pool(5) # 创建队列 q = multiprocessing.Manager().Queue() # 向进程池中添加要拷贝文件的任务 for file_name in file_names: po.apply_async(copy_file, args=(q, file_name, old_folder_name, new_folder_name)) po.close() # po.join() all_file_num = len(file_names) copy_ok_num = 0 while True: file_name = q.get() # print("已经完成复制:%s" % file_name) copy_ok_num += 1 print("r拷贝的进度:%.2f%%" % (copy_ok_num*100 / all_file_num),end="") if copy_ok_num >= all_file_num: break print() if __name__ == '__main__': main()
大家在写的时候注意下文件的路径问题
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算