2009-11-19 93 views
1

我正在制作一个程序,要求提供一个路径,并且Windows的路径包含反斜杠,如果下一个字母是错的一个。我尝试过string.replace(),但它不起作用,因为这些反斜杠在执行替换函数之前转换为转义序列。Python,在获取它们之前删除\

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

+0

你能澄清?路径从哪里来?用户是否输入了它?请张贴一些示例代码。 – 2009-11-19 21:05:20

+0

是的,用户需要一个路径,该路径可以由用户使用反斜杠 – 2009-11-19 21:12:40

回答

3

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

+0

谢谢,问题是我没有理解这一点,并认为它会在每一次每次都转换为转义序列 – 2009-11-19 21:22:22

+2

使用'os.path'来操纵这些,你永远不用担心。 – 2009-11-19 21:41:40

+1

@terabytest:当您有这样的想法时,请尝试在交互式解释器中进行测试。反馈时间比SO快得多! – 2009-11-19 21:58:32

6

不,不会将反斜杠解释为转义序列,除非在Python 源代码中。除非你认为路径错误,否则我不确定你为什么会遇到问题。

+0

>>> a =“C:\ Program Files \ a \ n \ b” >>> a 'C: \\ Program Files \ x07 \ n \ x08' 我在IDLE中这样做,他们确实得到解释 – 2009-11-19 21:08:01

+2

是的。这是Python的源代码。 – 2009-11-19 21:11:38

3

使用双\

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

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

这里我们输出

c:/dir/file.txt 
c:\dir\file.txt 
相关问题