我的wx.FileDialog (getpath())
显示"c:\test.jpg"
的路径不适用于需要cv.LoadImage()
或"\\"
"/"
所以,我试过使用替换功能,例如:
s.replace("\","\\"[0:2]),s.replace("\\","\\\"[0:2])
但没有一个有效。
并且,此命令s.replace("\\","/"[0:1])
返回相同的路径,我不知道为什么。
你能帮我解决这个简单的问题。
ps,我是python的新手
非常感谢你。抱歉我的语法答案 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
答案 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”
对不起,我没先试过。