python多程式實現檔案海量複製
python多程式實現檔案海量快速複製
直接上程式碼:
# -*- coding:UTF-8 -*-
import os
import multiprocessing
def copy_file(q,file_name,old_folder_name,new_folder_name):
'''完成檔案的複製'''
# print('======>模擬copy檔案:從%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():
#1.獲取使用者要copy的資料夾的名字
old_folder_name = input("請輸入要copy的資料夾的地址(如:C:\\Users\\admin\\Desktop\\爬的東西):")
#2.建立一個新的資料夾
try:
new_folder_name = old_folder_name+'(復件)'
os.mkdir(new_folder_name)
except:
pass
#3獲取資料夾的所有的待copy的檔名字 listdir()
file_names = os.listdir(old_folder_name)
#print(file_names)
#4.建立程式池
po = multiprocessing.Pool(5)
#5.建立一個佇列
q = multiprocessing.Manager().Queue()
#6.向程式池中新增copy檔案的任務
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('已經完成copy:%s' % file_name)
print('\r拷貝的進度:%.2f %%' % ((copy_ok_num+1)*100/all_file_num),end='')
copy_ok_num += 1
if copy_ok_num >= all_file_num:
break
if __name__ == '__main__':
main()
如有疑問可移步:
多程式:https://blog.csdn.net/weixin_44840774/article/details/111399723
程式池:https://blog.csdn.net/weixin_44840774/article/details/111408921
相關文章
- delphi多執行緒檔案複製怎麼實現執行緒
- 檔案複製(Go語言實現)Go
- 如何批量複製多個檔案到多個目錄中(批量複製檔案,多對多檔案高效操作的方法)
- Python中Wxpython實現剪下、複製、貼上和檔案開啟功能Python
- ZeroClipboard 多個複製按鈕,多個複製連結 實現方式
- Python結合檔名稱將多個檔案複製到不同路徑下Python
- 用python生成oracle goldengate複製配置檔案PythonOracleGo
- C語言實現檔案複製功能(包括文字檔案和二進位制檔案)C語言
- 簡單的多執行緒複製檔案執行緒
- 複製檔案githubGithub
- python——幾行程式碼,偷偷複製U盤檔案到電腦Python行程
- Python shutil用法 複製檔案與目錄操作Python
- cp 快捷命令:複製檔案到多個目錄
- ubuntu下檔案複製Ubuntu
- python檔案操作-讀寫刪除複製總結Python
- js 實現深複製/深複製JS
- Java-IO:複製檔案Java
- Go語言複製檔案Go
- mysql檔案複製遷移MySql
- netcdf檔案複製並修改
- C++檔案系統操作6 - 跨平臺實現檔案和資料夾的複製C++
- HttpFileCollection 實現多檔案上傳HTTP
- 多程式PHP指令碼實現海量資料轉移總結PHP指令碼
- 【Python】Python實現解壓rar檔案Python
- 利用標準I/O函式,實現兩個檔案的複製功能函式
- PHP實現單檔案、多檔案上傳 封裝 物件導向實現檔案上傳PHP封裝物件
- MySQL叢集之 主從複製 主主複製 一主多從 多主一叢 實現方式MySql
- git複製一份檔案Git
- [java IO流]之檔案複製Java
- 基於rsync實現海量檔案高速傳輸的解決方案
- Vue實現多檔案上傳功能(前端 + 後端程式碼)Vue前端後端
- SpringMVC多個檔案上傳實現SpringMVC
- Python | 實現pdf檔案分頁Python
- AWS CLI 實現 S3與EC2例項間檔案複製S3
- JS實現複製大法JS
- 前端實現複製功能前端
- 使用scp命令在多個Linux系統間進行檔案複製Linux
- 遠端登入和複製檔案