Macos 如何读取名称中包含诸如“/quot;”等字符的目录&引用;用python?

Macos 如何读取名称中包含诸如“/quot;”等字符的目录&引用;用python?,macos,python-2.7,wxpython,special-characters,Macos,Python 2.7,Wxpython,Special Characters,我正在开发OSX 10.5.8,它甚至允许在文件名字符上使用“/” 我有一个wx.TextCtrl包含一个要读取的目录(音乐艺术家目录),有这样的乐队 /Users/....../Music/iTunes/iTunes Music////▲▲▲\\\/Untitled/ //时态 ///▲▲▲\\ 所以在文本字段中,我写下一个目录名,如下所示 /Users/....../Music/iTunes/iTunes Music////▲▲▲\\\/Untitled/ 当然,我在读取时会遇到一个

我正在开发OSX 10.5.8,它甚至允许在文件名字符上使用“/”

我有一个wx.TextCtrl包含一个要读取的目录(音乐艺术家目录),有这样的乐队

/Users/....../Music/iTunes/iTunes Music////▲▲▲\\\/Untitled/
  • //时态
  • ///▲▲▲\\
所以在文本字段中,我写下一个目录名,如下所示

/Users/....../Music/iTunes/iTunes Music////▲▲▲\\\/Untitled/

当然,我在读取时会遇到一个错误,因为程序无法识别带和斜杠的名称,我如何解决它?

尝试将文件名(而不是目录名)中的
/
字符替换为

我建议使用wxPython的内置小部件,例如或

下面是一个简单的示例,允许您选择多个文件:

def onOpenFile(self, event):
    """
    Create and show the Open FileDialog
    """
    dlg = wx.FileDialog(
        self, message="Choose a file",
        defaultDir=self.currentDirectory, 
        defaultFile="",
        wildcard=wildcard,
        style=wx.OPEN | wx.MULTIPLE | wx.CHANGE_DIR
        )
    if dlg.ShowModal() == wx.ID_OK:
        paths = dlg.GetPaths()
        print "You chose the following file(s):"
        for path in paths:
            print path
    dlg.Destroy()

我建议下载wxPython演示来查看这个小部件和我提到的另一个小部件的示例

您能给我们一个包含这样一个子目录的父目录的
os.listdir()
输出吗?它将告诉我们使用了什么代码点。也许
ls-b
有助于找出它是什么字符。请参阅;在终端的文件名中使用
可以在Finder和iTunes中显示为
/
,反之亦然。将
/
替换为
,您就在那里了。这是输出=>回溯(最近一次调用):文件“/Users/../Documents/python/MusicOrganizer/libs/music.py”,第105行,在handleanalyze aListSongs=self.hFileSystemOp.readdirectoryssongs(self.sMusicSource)文件中“/Users/…/Documents/python/MusicOrganizer/libs/files.py”,第80行,在readDirectorySongs aListFiles=os.listdir(sddirectory)OSError:[Errno 2]没有这样的文件或目录:'/Users/../Music/iTunes/iTunes Music///\xe2\x96\xb2\xe2\x96\xb2\xe2\x96\xb2\Untitled/'@axel:这不是我想要的;我想要列出
iTunes Music
目录。:-)这也是我发现的:在Finder和文件对话框中,那些
字符显示为斜线,非常混乱:(在OS X 10.7和10.8上确认了它。我甚至试过用一个更简单的名字
/Users/…/Music/iTunes/iTunes Music/::Tense::/Memory/
表示名为//Tense//的目录,但没什么可做。但是我有osx 10.5.8如果可能,我想在我的文本字段中写下目录的真实名称。