Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将特定文件从一个子目录移动到另一个子目录_Python_Jupyter Notebook_Shutil - Fatal编程技术网

Python 如何将特定文件从一个子目录移动到另一个子目录

Python 如何将特定文件从一个子目录移动到另一个子目录,python,jupyter-notebook,shutil,Python,Jupyter Notebook,Shutil,这就是我的目录结构的外观: Dataset ---> Images ----> n02085620-Chihuahua ---> n02085620_01.jpg ---> n02085620_02.jpg . . . (~ 150+ files)

这就是我的目录结构的外观:

 Dataset
   ---> Images
          ----> n02085620-Chihuahua
                    ---> n02085620_01.jpg
                    ---> n02085620_02.jpg
                    .
                    .
                    . (~ 150+ files)
          ----> n02086646-Blenheim-Spaniel
          ----> n02087046-Toy-Terrier
          .
          .
          .
          (120 Folders)
   ---> Training
          ---> Chihuahua
          ---> Blenheim Spaniel
          ---> Toy Terrier
          .
          .
          .
          (120 Empty Folders)
我还有一个文件路径列表:

train_file_list = ['n02085620-Chihuahua/n02085620_5927.jpg', ... ', 'n02086646-Blenheim_spaniel/n02086646_1342.jpg', ..., 'n02087046-toy_terrier/n02087046_3490.jpg' ]
该列表有12000个项目,120个品种中的每一个都有100个文件路径,即前100个图像是吉娃娃,下100个是布兰海姆猎犬,依此类推

我还有一个从两个相应的列表构建的映射到狗品种的字典
dog\u id

n02097658: Chihuahua
n02092002: Japanese Spaniel
n02099849: Maltese
.
.
.
(120 key-value pairs)
我试图循环浏览我的文件路径列表,对于每个以
dog_id
开头的文件路径,我想使用字典将该文件移动到
Dataset/Training
下的相应文件夹,以将其映射到该品种

以下是我在Jupyter笔记本上尝试的代码,它似乎不起作用。我哪里做错了?请帮忙

root = "/Users/krithika/Desktop/GitHub Repositories/The-Pup-Files"

os.chdir(root)

for d_id, file in zip(dog_ids, train_file_list):
    if file.startswith(d_id):
        shutil.copy((root + "/Dataset/Images/" + file), (root + "/Dataset/Training/" + dog_ids_breeds[d_id]))

为什么不尝试嵌套循环,如下所示:

for d_id in dog_ids:
    for file in train_file_list:
        if file.startswith(d_id):
            shutil.copy((root + "/Dataset/Images/" + file), (root + "/Dataset/Training/" + dog_ids_breeds[d_id]))

希望这能奏效!:-)

你需要更多地描述你的问题。“似乎不起作用”不是很有帮助。到底发生了什么?文件根本没有移动?有例外吗?你把你的“Jupyter笔记本”放在哪里了?在远程服务器上?非常感谢!!我整天都在做这个,你是个救命恩人