将共享子目录复制到新目录中

2024-09-28 22:29:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个目录。其中一个包含~50000个文件夹,另一个包含~10000个文件夹。我想看看哪些文件夹名对两个目录都通用,然后将这些文件夹(及其内容)从directory1移到第三个目录directory3

下面是我写的-但是,我得到了错误IOError: [Errno 21] Is a directory

有人能指出如何改进我做错的地方吗

import os,sys,time,shutil

#specify root directories,
rootdir1 = "/Directory1"
rootdir2 = "/Directory2"
rootdir1_folders = []
rootdir2_folders = []


#Go through first directory, make list of names of folders in that directory
for subdir, dirs,files in os.walk(rootdir1):
        if("GeneSet" in subdir):
            folder_name = subdir.rsplit('/', 1)[-1]
            rootdir1_folders.append(folder_name)

#Go through second directory, make list of names of folders in that directory
for subdir, dirs,files in os.walk(rootdir2):
        if("GeneSet" in subdir):
            folder_name = subdir.rsplit('/', 1)[-1]
            rootdir2_folders.append(folder_name)

#check which folders are in both directories. 
intersected_list = list(set(rootdir1_folders).intersection(rootdir2_folders))

#move folders from first rootdir to the new folder
for subdir, dirs,files in os.walk(rootdir1):
        if("GeneSet" in subdir):
            new_folder=subdir.rsplit('/', 1)[-1]
            if(new_folder in intersected_list):
               shutil.copy(subdir,"directory3")

回溯:

Traceback (most recent call last):
  File "./FILE_NAME_COMPARER.py", line 41, in <module>
    shutil.copy(subdir, "directory3")
  File "/home/unix/sgerges/.conda/envs/ldsc/lib/python2.7/shutil.py", line 133, in copy
    copyfile(src, dst)
  File "/home/unix/sgerges/.conda/envs/ldsc/lib/python2.7/shutil.py", line 96, in copyfile
    with open(src, 'rb') as fsrc:
IOError: [Errno 21] Is a directory: '/directory1/CB_3.2_versus_FC_1.8_GeneSet'

Tags: ofnamein文件夹ifosfolderdirectory