按照我的经验,一般来说这个问题90%是因为中文路径引起的
然而今天我遇到的这个,可能入选知乎: ”你被哪些傻宝 bug 困扰过一天?“
在服务器中写图片, 但是 VScode 打不开:
我百思不得其解,cv2.imwrite 写的格式不对??
image_file_path = f.readline().strip() # <--------- 问题出在这里
image = read(image_file_path)
img_name = os.path.join("work_dirs/images", os.path.basename(image_file_path))
cv2.imwrite(img_name, image)
代码提示 xxx/xxx/1646002271-870234.jpg
Not found
我:
cat xxx/xxx/1646002271-870234.jpg
也提示 Not Found
我 ls 一下,这不是有吗???
看到那个 ^J
了吗,这就是问题,所有的文件后边都加了个这个…
然而肉眼看上去是一样的…
那这到底是啥呢?
image_file_path = f.readline() # <--------- 问题出在这里
cv2.imwrite(img_name, image_file_path)
就离谱,image_file_path 变量的结尾,会有 \n
, 协议 imwrite
写文件的时候文件名多了这个 \n
…
所以
image_file_path = f.readline().strip() # <--------- 所以加上 strip 去空格
cv2.imwrite(img_name, image_file_path)