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)
我的目标是能够解析包含多个图像的文件夹并获取它们的绝对路径,以便我可以将它们加载到 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)