【发布时间】:2018-12-21 06:50:34
【问题描述】:
one = (r"C:\Users\Sam\OneDrive\Desktop\RateData\1")
for feature in features[0]:
backslash = '\\'
imagePath = ((one)+backslash+"'"+str(feature)+"'")
img = cv2.imread(imagePath)
print(imagePath)
print(img)
所以print(imagePath) 的结果是:
C:\Users\Sam\OneDrive\Desktop\RateData\1\'1.1.jpg'
print(img) 的结果是:None
feature 只是图像文件名。我是这样写的,所以它会将唯一的图像文件名添加到路径中。
所以我尝试通过cv2.imread() 函数运行它,它返回None。
我知道它无法运行的原因是它只是将其作为字符串读取,并且没有将其识别为原始字符串文字。我不是一个非常有经验的程序员,所以我尝试了所有我能想到的方法(不是很多)让它将路径作为原始字符串文字读取,但它不起作用。因此,如果你们中的任何人都可以帮助我将字符串变成那样,那就太棒了!
感谢您的帮助!
【问题讨论】:
-
“我知道它无法运行的原因是它只是将它作为字符串读取并且不将其识别为文字” - 无论您对“字符串”和“文字”的概念如何" 是,它们与 Python 的实际工作方式不匹配。您为什么要尝试将单引号粘贴到文件路径中?你的文件名中真的有那些单引号吗?
-
是您构建路径
C:\Users\Sam\OneDrive\Desktop\RateData\1\'1.1.jpg但想要构建不同路径的问题,还是您构建该路径并想要构建该路径但不明白为什么没有名为@ 的文件987654330@ 在那个RateData目录中? -
要回答你的两个 cmets,
C:\Users\Sam\OneDrive\Desktop\RateData\1\'1.1.jpg是可接受的路径,如果我输入:r"C:\Users\Sam\OneDrive\Desktop\RateData\1\'1.1.jpg'",我已经让它在代码中工作。它的工作原理与:r"C:\Users\Sam\OneDrive\Desktop\RateData\1\1.1.jpg"相同。我需要路径前面的“r”的原因是我不会收到 unicode 错误。另外,我使用“字面”这个词是我的错。我应该使用“原始字符串”。我发帖的原因是想弄清楚如何将imagePath变成一个原始字符串,但事实证明我不需要那个。
标签: python string opencv literals cv2