import multiprocessing
import os
import shutil
""" 拷貝檔案任務:
filename: 檔名
src_dir:源目錄
dst_dir:目標目錄
"""def
copy_file
(file_name, src_dir, dst_dir):
# 原始檔的路徑
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:
# 設定讀取檔案位元組大小
file_data = src_file.read(1024)
if file_data:
# 把原始檔的資料寫入到目標檔案裡面
dst_file.write(file_data)
else:
break
if __name__ == '__main__':
# 指定源檔案目錄
src_dir = "./test/"
# 指定目標檔案目錄
dst_dir = "../test/"
# 判斷目標是否存在該資料夾,存在則刪除,並新建
if os.path.exists(dst_dir):
shutil.rmtree(dst_dir)
os.mkdir(dst_dir)
# 迴圈獲源資料夾內容
file_list = os.listdir(src_dir)
# 建立程序池
pool = multiprocessing.pool(3)
# 遍歷檔名
for file_name in file_list:
# 非同步寫入檔案操作
# 關閉程序池
pool.close()
# 設定阻塞主程序,等待當前程序執行完
pool.join()
多程序檔案拷貝
下面用程式實現這樣的功能 有乙個檔案的內容需要拷貝到另乙個檔案中,以前的做法是用乙個程序來完成,下面要做的是,是兩個程序同時做這件事,乙個程序負責一半,如父程序負責拷貝檔案的前半段,子程序負責拷貝檔案的後半段。下面看一下程式的流程以及需要注意的問題 其中 要注意的是當父程序呼叫fork函式建立子程序...
Linux 實現檔案的多程序拷貝
需求 實現檔案多程序拷貝 假設有乙個超大檔案,需對其完成拷貝工作。為提高效率,可採用多程序並行拷貝的方法來實現。假設檔案大小為len,共有n個程序對該檔案進行拷貝。那每個程序拷貝的位元組數應為len n。但未必一定能整除,我們可以選擇讓最後乙個程序負責剩餘部分拷貝工作。可使用len len n 將剩...
mmap多程序拷貝檔案
include include include include include include include includeusing namespace std int main int argc,char ar stat ar 1 buf int len buf.st size 這裡必須要有讀...