欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python中如何使用多线程实现文件的copy

程序员文章站 2022-07-03 14:51:05
文件的复制和粘贴我们每个人都会,但是若是只使用代码进行完成可能就会有点难度了,今天我们就使用python语言中的多线程实现文件的copy思路利用python中文件操作中的open方法通过输入的路径找到文件,再将文件中的数据利用二进制进行赋值给一个新的变量,再次利用open方法中的w模式来创建新的文件再将变量中的数据赋值给新的文件,这样就实现了文件的copy代码import threading# 声明模块import timeimport osf = ""def read_thread...

文件的复制和粘贴我们每个人都会,但是若是只使用代码进行完成可能就会有点难度了,今天我们就使用python语言中的多线程实现文件的copy

思路

利用python中文件操作中的open方法通过输入的路径找到文件,再将文件中的数据利用二进制进行赋值给一个新的变量,再次利用open方法中的w模式来创建新的文件再将变量中的数据赋值给新的文件,这样就实现了文件的copy

代码

import threading	# 声明模块
import time
import os

f = ""		# 定义一个变量用来接收数据


def read_thread(file_name, file_home):		# 定义一个函数用来读取文件中的二进制数据
    read_file = open(file_home + '//' + file_name, "rb")		# open的打开模式为"rb"以二进制方式打开
    global f
    f = read_file.read()		
    read_file.close()		# 关闭通道


def copy_thread(file_name, copy_home):		# 定义一个函数用来创建新的文件并复制数据
    my_list = list(os.listdir(copy_home))		# 查看复制路径是否存在当前文件
    i = 1
    while True:
        if file_name in my_list:
            copy_file = open(copy_home + '//' + file_name + f"(副本{i})", "wb")
            copy_file.write(f)
            copy_file.close()
            i += 1
            break
        else:
            copy_file = open(copy_home + '//' + file_name, "wb")
            copy_file.write(f)
            copy_file.close()
            break


if __name__ == '__main__':
    file_home = input("请输入想要copy文件的路径:")
    file_name = input("请输入想要copy文件的名称:")
    copy_home = input("请输入文件copy后的位置:")
    if not os.path.exists(copy_home):		# 若复制文件的目录不存在则创建路径
        os.makedirs(copy_home)		
    read_threading = threading.Thread(target=read_thread, args=(file_name, file_home))		# 创建线程
    copy_threading = threading.Thread(target=copy_thread, args=(file_name, copy_home))
    read_threading.start()		# 开启线程
    time.sleep(0.5)		# 等待复制成功!
    print("正在复制请稍候!")
    copy_threading.start()
    time.sleep(0.5)
    print("复制成功!")

本文地址:https://blog.csdn.net/Layfolk_XK/article/details/107874464

相关标签: 笔记