普通版檔案複製器**:
import multiprocessing
import os
def copy_one_file(src_dir, new_dir, file_name):
# 開啟遍歷到的原檔案,複製內容到新檔案
with open(src_dir + '/'+file_name, 'rb') as src_file:
content = src_file.read()
with open(new_dir + '/' + file_name, 'wb') as new_file:
new_file.write(content)
def main():
"""獲取要備份的資料夾名稱,使用程序池處理檔案的複製,每乙個程序處理乙個檔案"""
# 1. 獲取要備份的資料夾名
src_dir = input('請輸入要備份的資料夾名稱:')
# 2. 建立新資料夾 [新]資料夾名稱
new_dir = '[新]' + src_dir
os.mkdir(new_dir) # 新建資料夾
# 3. 獲取原資料夾下所有的檔名
file_list = os.listdir(src_dir)
# 4. 遍歷原資料夾裡的每乙個檔案,複製到新資料夾
for file_name in file_list:
copy_one_file(src_dir, new_dir, file_name)
if __name__ == '__main__':
main()
程序版檔案複製器**:
import multiprocessing
import os
def copy_one_file(src_dir, new_dir, file_name):
print('pid=', os.getpid())
# 開啟遍歷到的原檔案,複製內容到新檔案
with open(src_dir + '/'+file_name, 'rb') as src_file:
content = src_file.read()
with open(new_dir + '/' + file_name, 'wb') as new_file:
new_file.write(content)
def main():
"""獲取要備份的資料夾名稱,使用程序池處理檔案的複製,每乙個程序處理乙個檔案"""
pool = multiprocessing.pool(10)
# 建立容量為 10 的程序池
# 1. 獲取要備份的資料夾名
src_dir = input('請輸入要備份的資料夾名稱:')
# 2. 建立新資料夾 [新]資料夾名稱
new_dir = '[新]' + src_dir
os.mkdir(new_dir) # 新建資料夾
# 3. 獲取原資料夾下所有的檔名
file_list = os.listdir(src_dir)
# 4. 遍歷原資料夾裡的每乙個檔案,複製到新資料夾
for file_name in file_list:
# copy_one_file(src_dir, new_dir, file_name)
pool.close()
pool.join()
if __name__ == '__main__':
main()
列印進度檔案複製器**:
import multiprocessing
import os
def copy_one_file(src_dir, new_dir, file_name, q):
# 開啟遍歷到的原檔案,複製內容到新檔案
with open(src_dir + '/'+file_name, 'rb') as src_file:
content = src_file.read()
with open(new_dir + '/' + file_name, 'wb') as new_file:
new_file.write(content)
# 傳送訊息到主程序,通知列印複製進度
q.put(file_name)
def main():
"""獲取要備份的資料夾名稱,使用程序池處理檔案的複製,每乙個程序處理乙個檔案"""
q = multiprocessing.manager().queue()
pool = multiprocessing.pool(10)
# 建立容量為 10 的程序池
# 1. 獲取要備份的資料夾名
src_dir = input('請輸入要備份的資料夾名稱:')
# 2. 建立新資料夾 [新]資料夾名稱
new_dir = '[新]' + src_dir
os.mkdir(new_dir) # 新建資料夾
# 3. 獲取原資料夾下所有的檔名
file_list = os.listdir(src_dir)
# 4. 遍歷原資料夾裡的每乙個檔案,複製到新資料夾
for file_name in file_list:
# copy_one_file(src_dir, new_dir, file_name)
# pool.close()
# pool.join()
count = 0
while true:
file_name = q.get()
# 從子程序獲取已複製好的檔案
count += 1
percent = count*100 / len(file_list)
print('\r複製進度為 %.2f%%' % (percent), end='')
import time
time.sleep(0.01)
if percent == 100:
break
if __name__ == '__main__':
main()
TAP流量複製器在網路流量採集中的應用
在網路流量採集中,對於光纖鏈路,可以使用分光器來獲得乙份資料的拷貝 對於電纜線路,則需要乙個叫tap流量複製器的裝置來完成資料的複製。一 旁路 span 部署 tap流量複製器可以旁路 span 方式部署,接收交換機映象過來的流量,並複製多份輸出,一般用於一些小型網路環境中需要多份資料的場景,解決交...
Python實現檔案複製
如下 encoding utf 8 本程式實現檔案複製功能 source file open d.txt r encoding utf 8 dst file open e bat.txt a encoding utf 8 a表示追加,如果沒有該檔案則新建它 while true content so...
golang實現檔案複製
在io包中主要是操作流的一些方法,今天主要學習一下。它的原理都是通過程式,從原始檔讀取檔案中的資料,在寫出到目標檔案裡 io包下的read 和write 方法實現 通過io包下的read 和write 方法,邊讀邊寫,就能實現複製。這個方法是按塊讀取檔案,塊的大小也會影響到程式的效能 func fi...