创建文件复制的线程,以线程的方式复制三个文件到指定的文件夹(文件、及文件夹自定义)
时间: 2024-02-28 18:55:24 浏览: 18
好的,以下是一个Python的示例代码,可以创建一个文件复制的线程,并以线程的方式复制三个文件到指定的文件夹。你可以根据自己的需求进行修改和调整。
```python
import os
import shutil
import threading
# 定义要复制的文件列表
file_list = [
'file1.txt',
'file2.txt',
'file3.txt'
]
# 定义复制文件的函数
def copy_file(src_path, dest_path):
try:
shutil.copy(src_path, dest_path)
print(f'文件 {src_path} 已复制到 {dest_path}')
except Exception as e:
print(f'复制文件 {src_path} 出错:{str(e)}')
# 定义线程类
class CopyThread(threading.Thread):
def __init__(self, src_path, dest_path):
super().__init__()
self.src_path = src_path
self.dest_path = dest_path
def run(self):
copy_file(self.src_path, self.dest_path)
# 定义主函数
def main():
src_folder = '/path/to/source/folder' # 源文件夹路径
dest_folder = '/path/to/destination/folder' # 目标文件夹路径
# 创建目标文件夹
if not os.path.exists(dest_folder):
os.makedirs(dest_folder)
# 创建并启动线程
threads = []
for file_name in file_list:
src_path = os.path.join(src_folder, file_name)
dest_path = os.path.join(dest_folder, file_name)
thread = CopyThread(src_path, dest_path)
threads.append(thread)
thread.start()
# 等待所有线程执行完毕
for thread in threads:
thread.join()
print('所有文件复制完成')
if __name__ == '__main__':
main()
```
在上面的代码中,我们首先定义了要复制的文件列表 `file_list`,然后定义了一个复制文件的函数 `copy_file`,最后定义了一个线程类 `CopyThread`,这个类继承自 `threading.Thread`,并实现了 `run` 方法,用于复制指定的文件。
在主函数中,我们首先定义了源文件夹路径和目标文件夹路径,并创建了目标文件夹。然后,我们遍历 `file_list`,为每个文件创建一个 `CopyThread` 线程,并将其添加到一个线程列表 `threads` 中。最后,我们启动所有线程,等待它们执行完毕,然后输出提示信息。
当你需要复制更多的文件时,只需要将文件名添加到 `file_list` 中即可,这个示例代码会自动为每个文件创建一个线程,并以线程的方式复制到指定的文件夹。
相关推荐
![.rar](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)