Python获取作为参数传递的文件夹中文件的完整路径

3

我的目标是能够解析包含多个图像的文件夹并获取它们的绝对路径,以便我可以将它们加载到OpenCV中。

传入一个包含未知数量图像的单个文件夹。

#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实践文件”时的差异是因为它在我的for循环中查看“image”的abs.path,而代码文件保存在“ OpenCV实践文件”中。任何帮助都将不胜感激。


1
请不要滥用标签。这个问题与OpenCV无关。 - Dan Mašek
1个回答

3

你可能想要使用os.path.join

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

1
os.path.join() 不会规范化路径,也不会将相对路径转换为绝对路径。他可能想要使用 os.path.abspath(os.path.join(args["first"], image)) - Robᵩ
你是我的英雄。我想点赞,但只有6个声望值,哈哈。感谢你的帮助。 - C.Radford
嘿,Rob,谢谢你,这正是我想到的,最终我也这样做了,效果非常好。 - C.Radford

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接