【问题标题】:how to type "\ as a string in python如何在python中输入“\”作为字符串
【发布时间】:2020-04-10 22:24:33
【问题描述】:

我为 Windows 编写了一个 python 程序。路径由文件夹名 + 文件名组成,其中文件名在每次迭代中都会更改。 文件夹地址总是一样的,所以我把代码写成:

 path =  "%s%s" % ("C:\Users\ME\raw_image\", filename)

但是我注意到字符 \" 被认为是转义字符,并且 \r 也是有问题的。我尝试了几件事,但无法弄清楚如何摆脱这个问题。

有什么想法吗?

【问题讨论】:

  • @Rakesh,Python 的“原始”字符串不支持奇数个尾随反斜杠。使用os.path.join(r"C:\Users\ME\raw_image", filename)
  • '\' 是 python 字符串中的转义字符。要将转义字符本身打印为字符串,您可以对其进行转义! `\` 是你所追求的。
  • 使用路径时,最好使用os.path.join(...)
  • @JeffreyDevloo 我通常这样做,现在我正在创建一些 xml 文件来输入一个只能在 Windows 中工作的程序......长话短说,我必须这样做,否则我总是使用 os.path.jon(...)
  • @Rakesh,请删除带有以反斜杠结尾的无效原始字符串的评论。它吸引了幼稚的投票,这是一种误导,浪费每个人的时间,只是为了得到语法错误。

标签: python python-3.x string windows path


【解决方案1】:

你有两个选择。使用原始字符串作为文件夹路径:

path =  r"%s\%s" % (r"C:\Users\ME\raw_image", filename)

或使用反斜杠转义反斜杠:

path =  "%s%s" % ("C:\\Users\\ME\\raw_image\\", filename)

正如@Erik-Sun 所指出的,使用原始字符串需要对尾部反斜杠进行特殊处理,即尝试r"C:\Users\ME\raw_image\" 会导致语法错误,因为 Python 会将尾部反斜杠解释为双引号上的转义。

为了解决这个问题,我只是将最后一个反斜杠移动到未格式化的字符串r'%\%'

【讨论】:

  • 谢谢,我已经习惯了使用 pathlib,我只是不再考虑反斜杠了。
【解决方案2】:

在您的代码中使用\\ 而不是\,如下例所示:

>>> print("C:\\Users\\Me\\raw_image\\")
C:\Users\Me\raw_image\

【讨论】:

    【解决方案3】:

    你可以像这样添加另一个反斜杠:

    path =  "%s%s" % ("C:\\Users\\ME\\raw_image\\", filename)
    

    【讨论】:

      【解决方案4】:

      我宁愿建议您使用 str.format() 函数,因为这样可以避免您“转义”反斜杠。

      例如

      >>> filename = "filename.txt"
      >>> path = "C:\\Users\\Me\\raw_image\\{}".format(filename)
      >>> print(path)
      

      输出将是:

      C:\\Users\\Me\\raw_image\\filename.txt
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-16
        • 2014-04-25
        • 2017-05-05
        • 2021-09-04
        • 2021-08-17
        • 1970-01-01
        • 2021-05-03
        • 1970-01-01
        相关资源
        最近更新 更多