资源经验分享linux 下python多线程递归复制文件夹

linux 下python多线程递归复制文件夹

2020-01-02 | |  125 |   0

原标题:linux 下python多线程递归复制文件夹

原文来自:CSDN      原文链接:https://blog.csdn.net/Tdyh_NY/article/details/103788085


本文是利用python 复制文件夹 刚开始写了一个普通的递归复制文件夹    然后想了想 觉得对io频繁的程序 threading 线程还比较友好  就写了个多线程版本的  最恶心人的地方就是路径  其他都还好吧 

import os
import threading
import multiprocessing
 
 
length_of_folder = 0
 
def copyfile(Path):
    if os.path.isdir(Path):
        print("-----------%s" % ("Testfortherading_" + '/' + Path[length_of_folder:]))
        os.makedirs("Testforthreading_" + '/' + Path[length_of_folder:])
    filenames = os.listdir(Path)
    for filename in filenames:
        if os.path.isdir(Path + '/' + filename):
            #ps = "Testforthreading_" +"/" + Path[length_of_folder:]
            #print("%s" % (ps + '/' + filename))
            #os.mkdir(ps + '/' + filename)
            temp = Path + '/' + filename
            t = threading.Thread(target=copyfile , args=(temp,))
            t.start()
 
        else:
            f = open(Path + '/' + filename , 'rb')
            content = f.read()
            F = open('Testforthreading_' + '/' + Path[length_of_folder:]+ '/' + filename , 'wb')
            F.write(content)
            f.close()
            F.close()
 
def main():
    """"""
 
    foldername = input("Please input the folder you want to copy:")
    length_of_folder = len(foldername)
    if os.path.isdir("Testforthreading_"):
        os.removedirs("Testforthreading_")
    os.mkdir("Testforthreading_")
    copyfile(foldername)
    #p = multiprocessing.Pool(10)
    #que = multiprocessing.Manager().Queue()
 
 
 
if __name__ == "__main__":
    main()

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:Python股票数据处理的一些代码细节

下一篇:自动驾驶(六十一)---------蒙特卡洛搜索树

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...