Python 多進檔案拷貝

2021-09-14 02:23:00 字數 2987 閱讀 5613

#__author:bo

#date:2019/3/

import os

import multiprocessing

defcopy_file

(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(

)def

main()

:# 1.獲取使用者要拷貝的資料夾的名稱

old_folder_name=

input

("請輸入要拷貝的資料夾名稱"

)# 2.建立乙個新的資料夾

try:

new_foler_name=old_folder_name+

"[複製資料夾]"

os.mkdir(new_foler_name)

except

:pass

# 3.獲取資料夾中所有的copy的檔名稱,lisrdir()

file_names=os.listdir(old_folder_name)

print

(file_names)

# 4.建立程序池

po=multiprocessing.pool(5)

# 5.向程序池新增copy檔案的任務

for file_name in file_names:

(file_name,old_folder_name,new_foler_name,))

# 6.複製原資料夾的到新資料夾中

po.close(

) po.join(

)if __name__ ==

'__main__'

: main(

)

#__author:bo

#date:2019/3/

import os

import multiprocessing

defcopy_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)

defmain()

:# 1.獲取使用者要拷貝的資料夾的名稱

old_folder_name=

input

("請輸入要拷貝的資料夾名稱"

)# 2.建立乙個新的資料夾

try:

new_foler_name=old_folder_name+

"[複製資料夾]"

os.mkdir(new_foler_name)

except

:pass

# 3.獲取資料夾中所有的copy的檔名稱,lisrdir()

file_names=os.listdir(old_folder_name)

print

(file_names)

# 4.建立程序池

po=multiprocessing.pool(5)

# 建立乙個佇列

q=multiprocessing.manager(

).queue(

)# 5.向程序池新增copy檔案的任務

for file_name in file_names:

(q,file_name,old_folder_name,new_foler_name,))

# 6.複製原資料夾的到新資料夾中

po.close(

)# po.join()

all_file_nums=

len(file_names)

# 拷貝檔案的長度

copy_num=

0while

true

: file_name=q.get(

)# print("已經完成了copy%s" % file_name)

copy_num+=

1print

("\r拷貝的進度為%.2f %%"%(

(copy_num)

*100

/all_file_nums)

,end="")

if copy_num>=all_file_nums:

break

print()

if __name__ ==

'__main__'

: main(

)

多程序檔案拷貝

下面用程式實現這樣的功能 有乙個檔案的內容需要拷貝到另乙個檔案中,以前的做法是用乙個程序來完成,下面要做的是,是兩個程序同時做這件事,乙個程序負責一半,如父程序負責拷貝檔案的前半段,子程序負責拷貝檔案的後半段。下面看一下程式的流程以及需要注意的問題 其中 要注意的是當父程序呼叫fork函式建立子程序...

多程序實現檔案拷貝

import multiprocessing import os import shutil 拷貝檔案任務 filename 檔名 src dir 源目錄 dst dir 目標目錄 def copy file file name,src dir,dst dir 原始檔的路徑 src file pat...

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 這裡必須要有讀...