使用cv2构建检测模型时遭遇Windows路径Unicode转义语法错误
解决路径字符串的Unicode转义语法错误
错误原因
你的代码在解析阶段就报错了,根本没执行到打印img_array.shape的步骤。问题出在data_path的字符串定义上:Python会把双引号字符串里的\U识别为Unicode转义序列的起始标记(比如\U0001F600对应表情😀),但你路径里的\Users中\U后面没有跟符合要求的8位十六进制数,导致解码失败,触发SyntaxError。
三种可行解决方案
- 使用原始字符串:在字符串前加
r,让Python忽略所有转义字符,直接按字面量解析路径 - 替换反斜杠为正斜杠:Python的文件路径完全支持正斜杠,避免转义问题
- 用双反斜杠转义:每个反斜杠用另一个反斜杠代替,告诉Python这是普通字符
修改后的代码示例(以原始字符串为例)
import numpy as np import matplotlib.pyplot as plt import os import cv2 # 加r变成原始字符串,解决转义问题 data_path = r"C:\Users\TomMc\Desktop\Personal_Projects\Python\Dog AI\PetImages" categories = ["Dog", "Cat"] for category in categories: path = os.path.join(data_path, category) for img in os.listdir(path): img_array = cv2.imread(os.path.join(path, img), cv2.IMREAD_GRAYSCALE) plt.imshow(img_array, cmap='gray') plt.show() break break print(img_array.shape)
内容的提问来源于stack exchange,提问作者tj123456
相关产品推荐
相关产品推荐

