2015-03-03 2 views
0

Я использую этот кусок кода, чтобы импортировать каждый из моих изображений, которые я хотел бы использовать:Импорт изображений из другой папки

def load_all_graphics(): 
    image_dict = {} 
    for filename in os.listdir("."): 
     name,ext = os.path.splitext(filename) 
     if ext.lower() in [".png",".jpg",".bmp"]: 
      image = pg.image.load(filename).convert_alpha() 
      image.set_colorkey(pg.Color("black")) 
      image_dict[name] = image 
    return image_dict 

IMAGES = load_all_graphics() 

Это работает для применения у меня есть, однако следующая вещь, которую я хочу сделать помещает изображения в отдельную папку, я понимаю, что мне нужно изменить «listdir», я попытался изменить его в папку, содержащую мои изображения - (Ресурсы), однако становится невозможно открыть изображение.

Любая помощь была бы принята с благодарностью!

ответ

0

filename - это только имя файла по отношению к каталогу поиска файлов. Если вы не укажете полный путь к файлу, скрипт попытается открыть файл относительно текущего каталога, а файл находится в другом каталоге.

Решение: использовать os.path.join, чтобы создать полный путь к файлу, например:

def load_all_graphics(dirname): 
    image_dict = {} 
    for filename in os.listdir(dirname): 
    name,ext = os.path.splitext(filename) 
    if ext.lower() in [".png",".jpg",".bmp"]: 
     pathname = os.path.join(dirname, filename) 
     image = pg.image.load(pathname).convert_alpha() 
     image.set_colorkey(pg.Color("black")) 
     image_dict[name] = image 
    return image_dict 

IMAGES = load_all_graphics("/path/to/resources") 
print len(IMAGES) 
+0

Я "(" C: \\ Users \\ Джеймс \\ Desktop \\ \\ Nova Resources \\») "для полного dirname, но он все еще не может открыть изображение. – NezamiZero

+0

@NezamiZeo: Это все та же ошибка? (Кстати, я сделал опечатку в своем ответе: конечно, нужно было перейти в 'pathname' к' pg.image.load' после ее создания, а не 'filename': -/fixed now) –

+0

Все получилось! Спасибо! – NezamiZero

Смежные вопросы