2016-12-06 30 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 

我很確定這種差異重結果寫着「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」],image))''。 –

+0

你是我的英雄。我會投票,但只有在6代表。感謝您的幫助 –

+0

嘿羅布感謝那正是我想出了以及和落得這樣做,它的工作太棒了。 –