2016-12-06 4 views
1

Моя цель состоит в том, чтобы иметь возможность анализировать папку, содержащую многократные изображения, и получить абсолютный путь для них, чтобы я мог загрузить их в OpenCV.Python получить полный путь для файлов в папке, переданной как аргумент

Простая папка, содержащая неизвестное количество изображений.

#FilePass.py 

import os 
import cv2 
import argparse 
ap = argparse.ArgumentParser() 
ap.add_argument("-1", "--first", required=True) 
args = vars(ap.parse_args()) 
imagesToStitch = os.listdir(args["first"]) 
for image in imagesToStitch: 
    print os.path.abspath(image) 

Это команда для выполнения с использованием пути к используемой папке.

# python FilePass.py --first C:\Users\cradford\Documents\Research\ImagesToPass\Pass1 

Изображения, содержащиеся в и соответствующие им полный путь файла являются:

_001.jpg # "C:\Users\cradford\Documents\Research\ImagesToPass\Pass1" 
_002.jpg # "C:\Users\cradford\Documents\Research\ImagesToPass\Pass1" 

Желаемый результат:

C:\Users\cradford\Documents\Research\ImagesToPass\Pass1\_001.jpg 
C:\Users\cradford\Documents\Research\ImagesToPass\Pass1\_002.jpg 

Выход с кодом используется:

C:\Users\cradford\Documents\Research\OpenCV Practice Files\_001.jpg 
C:\Users\cradford\Documents\Research\OpenCV Practice Files\_002.jpg 

Я довольно уверен, что несоответствие re результат читает «Практические файлы OpenCV» - это потому, что он смотрит на abs.path «изображения» в моем цикле for, а файл кода сохраняется в «Практических файлах OpenCV». Любая помощь приветствуется.

+1

Пожалуйста, не спам-теги. В этом вопросе нет ничего общего с OpenCV. –

ответ

1

Вы, вероятно, хотите использовать os.path.join

for image in imagesToStitch: 
    print os.path.join(args["first"], image) 
+0

'os.path.join()' не нормализуется и не конвертирует относительные пути в абсолютные. Возможно, он захотел «os.path.abspath (os.path.join (args [« first »], изображение)). –

+0

Ты мой герой. Я бы голосовал, но только в 6 rep lol. Спасибо за вашу помощь. –

+0

Привет, Роб, благодаря тому, что я тоже придумал, и закончил работать, и он отлично поработал. –