Python利用多執行緒Pool製作資料夾複製器

2022-09-11 21:42:28 字數 1625 閱讀 9672

linux以及mac windows都自帶有複製資料夾功能,但是最近感覺自帶的複製效率真的很低,寫了乙個簡易的多執行緒複製器,**如下,執行條件是在linux,利用終端瞬間複製了170多個py檔案,感覺效率很快,大檔案等還沒測試,不過相信我,windows自帶的複製貼上遇到了很多小檔案且數量居多的時候,速度龜速,好了下面是**,大檔案等可以自己測試。

import

multiprocessing

import

osdef

copy(file_name,copy_folder,copying_folder):

for s in

file_name:

with open(copy_folder+s,'rb'

) as f:

copy_data =f.read()

x = open(copying_folder+s,'wb'

) x.write(copy_data)

x.close()

defmain():

#因為需要拷貝的資料夾內容是不固定的,需要使用到程序池

processes = multiprocessing.pool(10)

copy_folder = input("

請輸入你要拷貝的資料夾的絕對路徑")

#獲取到了使用者需要拷貝的資料夾路徑,可以利用os模組的listdir()返回所有檔案列表

file_name =os.listdir(copy_folder)

copying_folder = input("

請輸入你要拷貝到的資料夾絕對路徑")

#已經獲取到需要待拷貝的資料夾

#需要判斷該資料夾是否存在

choice =os.path.exists(copying_folder)

if choice ==true:

print("

你輸入的資料夾已經存在,是否繼續")

s = input("

\t繼續輸入yes,退出輸入exit:")

if s == '

yes'

:

else

: exit(0)

else

: os.mkdir(copying_folder)

processes.close()

processes.join()

if__name__ == '

__main__':

main()

自己測試了一下,結果如下

1 執行時的**(注意:此為linux(mac)下的路徑方式,windows使用輸入路徑均為\\)

2 test 資料夾內容展示

3 執行結束test1資料夾

4 test1 裡的詳細內容

利用python多執行緒更新資料

需求背景 從一張大表中取記錄更新另一張大表的的字段,如採用oracle直接update 好久都沒有更新完成的。處理 採用python,主線程游標查詢原始表,開啟執行緒從游標中讀取記錄,批量更新目標大表的字段。usr bin python coding utf 8 import cx oracle a...

python多執行緒 python多執行緒

通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...

python多執行緒詳解 Python多執行緒詳解

前言 由於最近的工作中一直需要用到python去處理資料,而在面對大量的資料時,python多執行緒的優勢就展現出來了。因而藉此機會,盡可能詳盡地來闡述python多執行緒。但對於其更底層的實現機制,在此不做深究,僅是對於之前的一知半解做個補充,也希望初學者能夠通過這篇文章,即便是照葫蘆畫瓢,也能夠...