import multiprocessing
import os
import time
import random
def copy_file(queue, file_name,source_folder_name, dest_folder_name):
"""copy檔案到指定的路徑"""
f_read = open(source_folder_name + "/" + file_name, "rb")
f_write = open(dest_folder_name + "/" + file_name, "wb")
while true:
time.sleep(random.random())
content = f_read.read(1024)
if content:
f_write.write(content)
else:
break
f_read.close()
f_write.close()
# 傳送已經拷貝完畢的檔案名字
queue.put(file_name)
def main():
# 獲取要複製的資料夾
source_folder_name = input("請輸入要複製資料夾名字:")
# 整理目標資料夾
dest_folder_name = source_folder_name + "[副本]"
# 建立目標資料夾
try:
os.mkdir(dest_folder_name)
except:
pass # 如果資料夾已經存在,那麼建立會失敗
# 獲取這個資料夾中所有的普通檔名
file_names = os.listdir(source_folder_name)
# 建立queue
queue = multiprocessing.manager().queue()
# 建立程序池
pool = multiprocessing.pool(3)
for file_name in file_names:
# 向程序池中新增任務
# 主程序顯示進度
pool.close()
all_file_num = len(file_names)
while true:
file_name = queue.get()
if file_name in file_names:
file_names.remove(file_name)
copy_rate = (all_file_num-len(file_names))*100/all_file_num
print("\r%.2f...(%s)" % (copy_rate, file_name) + " "*50, end="")
if copy_rate >= 100:
break
print()
if __name__ == "__main__":
main()
iOS應用資料夾
如果你要檔案不刪除但是也不備份,可以使用下面 來做標記,不做備份處理 1 bool addskipbackupattributetoitematurl nsurl url210 return success 11 1 import 2 bool addskipbackupattributetoite...
python多工資料夾copy顯示進度
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 fo...
Python資料夾copy器(多程序版)
import multiprocessing import os import time import random defcopy file queue,file name,source folder name,dest folder name copy檔案到指定的路徑 f read open s...