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

嘿罗布感谢那正是我想出了以及和落得这样做,它的工作太棒了。 –