【问题标题】:Python, removing the \'s before getting them processedPython,在处理它们之前删除 \'s
【发布时间】:2009-11-19 21:02:37
【问题描述】:

我正在制作一个请求路径的程序,而 Windows 的路径包含反斜杠,如果紧随其后的字母是错误的,python 可以将其解释为转义序列。我尝试了 string.replace() 但它不起作用,因为这些反斜杠在执行替换函数之前已转换为转义序列。

有没有办法删除它们,也许让它们 / 而不是 \?

【问题讨论】:

  • 你能澄清一下吗?路径从何而来?用户输入了吗?请发布一些示例代码。
  • 是的,要求用户输入路径,并且该路径可以由用户使用反斜杠写入

标签: python escaping backslash


【解决方案1】:

不,除了 Python 源代码,反斜杠不会被解释为转义序列。除非您正在评估()路径,否则这是错误的,我不确定您为什么会遇到问题。

【讨论】:

  • >>> a = "C:\Program Files\a\n\b" >>> a 'C:\\Program Files\x07\n\x08' 我在 IDLE 中做了这个,他们确实得到了解释
【解决方案2】:

如果您要求用户输入,则 \ 将正确地作为 \ 进入字符串。只有当您以某种方式评估用户的字符串时,反斜杠才会算作转义字符。你真的只需要担心在代码中编写字符串时转义。

【讨论】:

  • 谢谢,问题是我不理解这一点,并认为在每种情况下每次都会将其转换为转义序列
  • 使用os.path 来操作这些,您永远不必担心。
  • @terabytest:当您有这样的想法时,请尝试在交互式解释器中对其进行测试。反馈时间比 SO 快很多!
【解决方案3】:

使用双倍\

str = 'c:\\dir\\file.txt'

print str.replace('\\','/')
print str

这里是我们的输出

c:/dir/file.txt
c:\dir\file.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-06
    • 2020-08-28
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2011-02-23
    • 2013-12-31
    • 2016-07-02
    相关资源
    最近更新 更多