如何用“\\”替换“\”

时间:2010-09-10 13:34:48

标签: python

我的wx.FileDialog (getpath())显示"c:\test.jpg"的路径不适用于需要cv.LoadImage()"\\"

的opencv "/"

所以,我试过使用替换功能,例如:

s.replace("\","\\"[0:2]),s.replace("\\","\\\"[0:2])

但没有一个有效。

并且,此命令s.replace("\\","/"[0:1])返回相同的路径,我不知道为什么。

你能帮我解决这个简单的问题。

ps,我是python的新手

非常感谢你。抱歉我的语法

5 个答案:

答案 0 :(得分:4)

\转义下一个角色。要实际得到一个反斜杠,你必须逃避它。使用\\

 s.replace("\\","/")

答案 1 :(得分:2)

我认为您正在寻找s.replace("\\","/")

查看文档,我不是Python程序员,但它是这样的:

str.replace(old, new[, count])

所以你不需要第三个参数,但是你需要新旧的。

s.replace("\\","/")

我们之所以有\\,是因为如果我们只有"\"这意味着你的转发报价和你的old参数会被发送"如果python don触发和错误。

你需要发送像\一样的Literal反斜杠,那么实际发送到解释器的是一个\

你会注意到SO语法高亮显示字符串被转义的地方..

s.replace("\","\\"[0:2]) #yours                        "
s.replace("\\","/") #mine

http://en.wikipedia.org/wiki/Escape_character

答案 2 :(得分:0)

我不清楚你想要对路径做什么,但是有很多功能可以处理它们。您可能希望使用os.path.normpath()来更正正在运行的平台的斜杠。

答案 3 :(得分:0)

在Python中,您可以独立于操作系统使用/作为路径分隔符(正如RobertPitt指出的那样,无论如何都可以这样做。)

但要回答你的问题,这应该有效:

str.replace("\\", "\\\\")

答案 4 :(得分:0)

def onOpen(self, event): # wxGlade: MyFrame.<event_handler>
    dlg = wx.FileDialog(self, "Open an Image")
    if dlg.ShowModal() == wx.ID_OK:
        __imgpath__ = dlg.GetPath()
        print 'Selected:', dlg.GetPath()
        self.panel_2.LoadImage(cv.LoadImage(__imgpath__))

我不知道为什么,但它适用于opencv。

输出:“已选择:c:\ test.jpg”

对不起,我没先试过。