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

Python get full path for files in folder passed as argument

我的目标是能够解析包含多个图像的文件夹并获取它们的绝对路径,以便我可以将它们加载到 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 Practice Files" 的差异是因为它在我的 for 循环中查看 "image" 的 abs.path 并且代码文件保存在 "OpenCV Practice Files"。 任何帮助表示赞赏。

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

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