python中绝对路径的写法

转载自:http://withwsf.github.io/2015/12/30/Python%E5%9C%A8Windows%E7%8E%AF%E5%A2%83%E4%B8%8B%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E8%B7%AF%E5%BE%84%E9%97%AE%E9%A2%98%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/

Windows中路径分隔符是反斜线’\’,而在Python中’\’又有转义符的作用,因而直接从windows资源管理器复制的路径在Python中是不能正常识别的。

  • 最优实践:

使用os.path.join来join不同的路径,比如


path=os.path.join(dirpath,filepath)

也可以使用os.sep,python会根据不同的系统自动选择合适的路径分隔符


path=dirpath+os.sep+filepath
  • 次优方案
    可以将所有路径都使用正斜线’/‘,不管在Windows和Linux中都适用.

不要使用
在引用的字符串前面加上’r’可以将转义字符串(escaped strings )转换为原始字符串(raw strings),可以解决部分问题。比如


1  file=open('c:\myfile') #打开错误
2  file=open(r'c:\myfile')#可以正确打开

但是’r’是为了方便书写正则表达式而不是为了解决Windows下文件路径问题而设计的特性,所以会遇到一下问题

file=open(r’c:\dir\’+’myfile’)

上述代码是错误的,虽然’\’失去了转义作用,但仍然有保护作用,其后的‘’’并不会被视为closing delimiter。

由此可见,使用r不仅没有完全解决问题,还会引入新的问题,所以最好不要使用。

 

 

虽然博主是那样说的,但是我为了测试一些东西用了最不好的那种方法,很方便

不要像我一样偷懒啦

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值