劝退学习者的Python路径输入的小坑
我承认我比较懒,一般不喜欢写博客,但是,就在今天学习copyfile()的时候,由于接连踩了Python路径输入的几个小坑,浇灭了一天的好心情。经过不懈的努力,这些小怪兽终于得以解决。但在查找过程中,直接由报错信息引出的博客很多并不能指向答案,为了让和我一样的学习者少一点痛苦。我将学到的点进行了一个整理,希望能够帮到更多的人。(真的被这几个小坑整不会了……)
Python的路径输入
在Windows下我们见到的路径一般是这样的:
?D:\xxxx\xxxx\xxxx (xxxx为文件目录名)
但是,由于在Python中存在转义字符 ,’ \ ’ 容易引起歧义,所以我们以这样的方式复制或者输入路径时,会造成不必要的麻烦。以下给出了3种正确的输入方式:
1 :使用 ’ / ’
通过使用’/'作为分隔符,可以在Windows或者Linux下自由自在的输入路径,而不会有转义字符引起的困扰。
2 :使用r
在路径前加上 ’ r '(全称是raw string,),意味着输入的路径为原始字符串常量,可以让字符保持原来的意思。
3 :使用 ’ \ \ ’
通过使用’ \ \ '作为分隔符,也可以避免转义字符引起的问题。
复制路径时的问题
这个问题如果再不明其本质的情况下,真的可以称得上是一个玄学问题。对于不会在屏幕上显示出来的‘\u202a’字符,真的是可以把人搞傻的。
我是这样遇到问题的:
这个问题在网上也是屡见不鲜,最经常的描述是。同样的路径复制下来使用就会报错,而手写下来使用就没有任何问题,看着的确是一模一样的。
这个问题的引发原因是’\u202a’字符,简单介绍一下它吧。它是windows在做文件名显示的时候,为了保证文件路径是从左往右显示所加的Unicode双向算法中定义的强制字符。
当我们从左向右复制路径时,复制的路径不会带有’\u202a’字符,而一旦从右向左复制时,复制的路径便会带有其,再加之这个字符并不会显示,所以我们直接复制路径使用时往往会踩雷。
解决方法
一种常见的方法便是手输代码 还有一种可以参考这篇博客: Python路径中出现\u202a的解决方法(不用手工删除)
参考博客:
\u202a 神奇的控制字符 Python路径中出现\u202a的解决方法(不用手工删除)
|