验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

python指定路径斜杠与反斜杠遇到的问题怎么解决

阅读:1010 来源:乙速云 作者:代码code

python指定路径斜杠与反斜杠遇到的问题怎么解决

      指定路径斜杠与反斜杠的问题

      python指定路径斜杠与反斜杠遇到的问题怎么解决

      报错:SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated UX

      解决方法

      python指定路径斜杠与反斜杠遇到的问题怎么解决

      这是python中指定路径的问题,因为Windows下的路径都是反斜杆(如上图所示),在很多编程语言中会不认识""字符,可能会把它识别成转义字符(python就是把它当成了转义字符),如果按照Windows下的路径输入,代码运行就会出现上述的错误

      这个错误有两种解决方法:

      1. 在路径前面加一个r字母:让路径变成原始字符串,意思就是不让nt等有特殊含义的影响指定的路径

      imge=cv2.imread(r"C:UsersChengguoDesktoppy_studyAlexnetcifar_picturesNO.0class6.jpg")

      2. 在所有的反斜杠前面在加一条斜杠:意思是进行斜杠转义,目的也是排除tn等的影响

      imge=cv2.imread("C:\Users\Chengguo\Desktop\py_study\Alexnet\cifar_pictures\NO.0class6.jpg")

      这里注意一下,指定路径的话最好还是直接用正斜杠(不论是相对路径还是绝对路径),避免出现上述的错误

      imge=cv2.imread("C:/Users/Chengguo/Desktop/py_study/Alexnet/cifar_pictures/NO.0class6.jpg")

      字符串转义序列(Escape Sequences)

      python指定路径斜杠与反斜杠遇到的问题怎么解决

      对于字符串转义序列,你需要再字符串中应用它们,确认自己清楚地知道它们的功能

      正斜杠与反斜杠

      历史渊源

      • UNIX操作系统:设计了使用 ‘/’ 的路径分割法

      • DOS系统:借鉴了UNIX的目录结构,但由于在DOS系统中,斜杠 ‘/’ 已经用来作为命令行参数的标志,因此只能使用反斜杠 ‘’

      • Windows系统:很多时候已经没有命令行参数的干扰,因此正斜杠与反斜杠大多数情况下可以互换 

      实例验证

      桌面新建临时Excel文件——test.xlsx,绝对路径为‘C:Usersliu19Desktoptest.xlsx’

      下面以五种路径方式读入python:

      方式一:路径中采用反斜杠,路径前面加r

      python指定路径斜杠与反斜杠遇到的问题怎么解决

      note:路径前加r,防止程序将 ‘’ 当做转义字符

      方式二: 路径中采用反斜杠,路径前面不加r

      python指定路径斜杠与反斜杠遇到的问题怎么解决

      方式三: 路径中采用双反斜杠,路径前面不加r

      python指定路径斜杠与反斜杠遇到的问题怎么解决

      note:与方式一中加r的作用一样

      方式四:使用正斜杠,路径前面不加r

      python指定路径斜杠与反斜杠遇到的问题怎么解决

      方式五:使用反斜杠,路径前面加r,路径中全采用小写

      python指定路径斜杠与反斜杠遇到的问题怎么解决

      小结:

      • Windows中 ‘’ 为特殊字符,会对后面的内容进行转义(r、t等),在路径前面加上r之后,‘’ 就变成了普通字符,不会再对后面的字符进行转义

      • ‘\’ 用第一个 ‘’ 取消第二个 ‘’ 的转义作用

      • 使用正斜杠也是有效路径,且可以省去转义的烦恼

      • 路径大小写不敏感

      总之,若只用 ‘’ ,则一定要去除反斜杠的转义功能,要么在整体路径前面加r,要么使用双反斜杠。 

    分享到:
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
    相关文章
    {{ v.title }}
    {{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
    你可能感兴趣
    推荐阅读 更多>