Копировать файлы, чье имя есть в списке - PullRequest
0 голосов
/ 05 июля 2019

Я хочу скопировать файлы в новый каталог (good_images), имя которого находится в списке имен

У меня более 60 000 изображений и список из 16 000 имен. Я точно знаю, что каждое имя в списке совпадает с именем изображения. Например, изображения называются 100079.jpg, а список - 100079. Я добавил .jpg в конец каждого числа в списке, но это не помогло.

import os
from shutil import copy2
import pandas as pd
import numpy as np
Good_File_Names_jpg = []
for i in Good_File_Names:
    Good_File_Names_jpg.append('%s.jpg' % i) #add .jpg to end of list so its similar to file names
for i in (Good_File_Names):
    for j in os.listdir('images_training_rev1_editing'):
        if j.startswith('Good_File_Names[i]'):
            os.chdir('images_training_rev1_editing')
            copy2('%s' % j, 'good_images')
            os.chdir('..')
            print(j)

Я знаю, что цикл работает, потому что для его запуска требуется 10 минут, и если я заменю 'Good_File_Names [i]' на число (скажем, 100078), он успешно скопирует 100078.jpg в новый каталог. Я думаю, что проблема находится в строке j.startwith. Возможно, это связано с тем, как передается переменная.

1 Ответ

0 голосов
/ 05 июля 2019

Проблема в том, что у вас есть j.startswith('Good_File_Names[i]'): в кавычках, поэтому Python интерпретирует его как строку.Вы также уже перебираете значения Good_File_Names с вашей переменной i.Замена кода на j.startswith(i): должна решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...