程序實現檔案複製器

2021-08-19 23:45:01 字數 3014 閱讀 1828

普通版檔案複製器**:

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