萌新小白二号
2020-06-16 10:06
采纳率: 40%
浏览 309

python转义字符替换问题?

我的问题是我想把这两部分拼起来作为open的绝对路径,但是这样是无法完成而且还会报错

path = 'D:\python_project\book\ten\'
files = 'pi_digits.txt'
nm = path+files
with open(nm) as name:
    contents = name.read()
    print(contents.rstrip())

我尝试过,下面这种是可以的,又或者在字符串前加r

# path = 'D:\\python_project\\book\\ten\\'
# files = 'pi_digits.txt'
# nm = path+files
# with open(nm) as name:
#     contents = name.read()
#     print(contents.rstrip())

在上面的基础上,我试了试以下方法,有两个问题,一个是转义原始字符打印出来是'D:\python_project\x08ook\ten',其二这样替换会直接报错

eval(repr(path).replace('\', '\\'))

希望大佬能提供给我一个解决方法,谢谢各位大佬了

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • mollpppp 2020-06-16 17:03
    已采纳

    python中自带的库os有一个属性os.path.sep,表示当前系统使用的分隔符(自动识别当前系统使用的路径分隔符)。
    dirname+os.path.sep+filename 会自动拼接成可用的文件路径

    已采纳该答案
    打赏 评论
  • threenewbee 2020-06-16 10:57
    eval(repr(path).replace('\\', '\\\\'))
    
    打赏 评论
  • 我叫萧萧白 2021-04-06 09:17

    你可以把所有的反斜线换成正斜线。把\换成/就好啦

    打赏 评论

相关推荐 更多相似问题