importosimportshutil
importmultiprocessing
importtime
# 檔案拷貝任務
defcopy_work(src_dir, dst_dir, file_name):
# 檢視程序物件
pid = multiprocessing.current_process().pid
print(pid)
# 拼接原始檔的路徑
src_file_path = src_dir + "/" + file_name
# 拼接目標檔案的路徑
dst_file_path = dst_dir + "/" + file_name
withopen(dst_file_path,
"wb")asdst_file:
# 打原始檔讀取檔案中的資料
withopen(src_file_path,
"rb")assrc_file:
while true:
# 讀取資料
src_file_data = src_file.read(1024)
ifsrc_file_data:
# 寫入到目標檔案裡面
dst_file.write(src_file_data)
else:
breaktime.sleep(0.5)
if__name__ == '__main__':
# 源目錄
src_dir = "test"
# 目標目錄
dst_dir = "/home/python/desktop/test"
# 判斷資料夾是否存在
ifos.path.exists(dst_dir):
# 存在則刪除資料夾及資料夾裡面的所有檔案
shutil.rmtree(dst_dir)
# 建立目標資料夾
os.mkdir(dst_dir)
# 獲取源目錄裡面檔案的列表
file_name_list = os.listdir(src_dir)
# 建立程序池
pool = multiprocessing.pool(3)
# 遍歷檔案裡面獲取檔名
forfile_nameinfile_name_list:
# 使用程序池執行拷貝任務
# # 拼接原始檔的路徑
# src_file_path = src_dir + "/" + file_name
# # 拼接目標檔案的路徑
# dst_file_path = dst_dir + "/" + file_name
# with open(dst_file_path, "wb") as dst_file:
# # 打原始檔讀取檔案中的資料
# with open(src_file_path, "rb") as src_file:
# while true:
# # 讀取資料
# src_file_data = src_file.read(1024)
# if src_file_data:
# # 寫入到目標檔案裡面
# dst_file.write(src_file_data)
# else:
# break
# 關閉程序池
pool.close()
# 主程序等待程序池執行完成以後程式再退出
pool.join()
檔案 資料夾複製
通道對通道複製效率高 param f1 原始檔 param f2 目的檔案 return throws exception public static long forchannel file f1,file f2 throws exception if inc.size inc.position ...
資料夾copy器 (用程序池實現)
usr bin env python coding utf 8 import multiprocessing import os,time,random defcopy file q,file name,old folder name,new folder name 完成copy任務 print 從...
複製資料夾函式
函式名稱 copydir 函式功能 複製資料夾 函式返回 bool 如果是true,複製成功,否則失敗。引數說明 param cstring strsrcpath 源資料夾 param cstring strdstpath 目標資料夾 bool copydir cstring strsrcpath,...