我正在尝试将大量文件从一个目录复制到另一个目录。但是,在尝试通过使用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 Falsedef 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')
添加回答
举报
0/150
提交
取消