\u20a 错误解决 OSError: [Errno 22] Invalid argument:
在python 用到类似open时,都是碰到`.OSError: [Errno 22] Invalid argument的错误, 例如我们的路径是: path=r’?C:\Users\Administrator\Desktop\PNG.png’ 用print(path) 打印后:‘\u202aC:\Users\Administrator\Desktop\PNG.png’ 前面多出了\u202a, 解决方法1:出现这个是用复制时形成的, 所直接手动输入就OK了,比较费手, 哈哈!。 解决方法2:网上看到的,采用strip 命令, 按上面的地址变量,就是path.strip()或path.strip(‘\u202a’) 不过我试了下,这个方法不行了,网上看了 有人说可以。那就NG吧。 解决方法3:采用切片的方式。print(path[1:])就正常了
下面是代码:
import os
import qrcode
from PIL import Image
img = qrcode.make("https://haokan.baidu.com/v?pd=wisenatural&vid=4748609005291625284")
img = img.convert("RGB")
weight,height = img.size
file_path=r'E:\Temp\sb'
#file_path=file_path.strip()
file_name='abc.jpg'
#file_name=file_name.strip()
#img_fn = os.path.join(file_path, file_name)
pp=r'?C:\Users\Administrator\Desktop\PNG.png'
imgf = Image.open(pp.strip('\\u20a'))
#imgf
pp[0:]
# 结果:'\u202aC:\\Users\\Administrator\\Desktop\\PNG.png'
pp[1:]
# 结果:'C:\\Users\\Administrator\\Desktop\\PNG.png'
|