猿问

Python将大量文件错误复制到许多打开的文件中

我正在尝试将大量文件从一个目录复制到另一个目录。但是,在尝试通过使用Threading加快处理速度时,我收到一个错误消息,它抱怨打开的文件太多。目前,文件的测试批次大约为700多个,下面是代码。我该如何解决?在我的示例中,我将文件从网络上的一个位置复制到同一网络上的另一个位置,文件范围从1mb到100mb。


def copy_file_to_directory(file, directory):

    '''

    Description:

        Copies the file to the supplied directory if it exists

    '''

    if os.path.isfile(file):

        url = os.path.join(directory, os.path.basename(file))

        try:

            shutil.copyfile(file, url)

            shutil.copystat(file, url)

            return True

        except IOError as e:

            print (e)

            return False


def copy_files_to_directory(files, directory):

    '''

    Directory:

        Copy a list of files to directory, overwriting existing files

    '''

    if not os.path.isdir(directory):

        os.makedirs(directory)


    if not os.path.isdir(directory):

        return False


    workers = []   

    for x in files:

        if os.path.isfile(x):

            worker = threading.Thread(target=copy_file_to_directory, args=(x,directory))

            workers.append(worker.start())


    # wait until they are all done processing

    for x in workers:

        x.join()


    return True


 files = [] # list of files

 copy_files_to_directory(files, 'C:/Users/John')


手掌心
浏览 127回答 2
2回答
随时随地看视频慕课网APP

相关分类

Python
我要回答