tkFileDialogで複数ファイル選択

tkFileDialog.openfilenamesで複数ファイル選択をした際、Pythonなんだから当然リストで返ってくるものだと思ったら、スペース区切りの単一文字列を返された。
tclの文法を引きずってるみたいで、要素中にスペースが含まれると"{}"で囲われる。しかしながら"{}"のエスケープとかしないみたいでファイル名が"hogehoge {hoge hoge"でも"{hogehoge {hoge hoge}"としてくるので単純に処理できない。
でラッパを作ってみた。

def askopenfilenames(*args, **kargs): 
    """tkFileDialog.askopenfilenamesのラッパ 
    ファイル名のリストを返す""" 
    tmp = tkFileDialog.askopenfilenames(*args, **kargs) 
    ret = [] 
    buf = "" 
    for fn in tmp.split(): 
        if buf: 
            buf += " " + fn 
            if fn[-1] == '}': 
                try: 
                    st = os.stat(buf[:-1]) #ファイルの存在確認 
                    if st: 
                        ret.append(buf[:-1]) 
                        buf=""                     
                except: 
                    pass 
        elif fn[0] == '{': 
            buf = fn[1:] 
        else: 
            ret.append(fn) 
    return ret

書いてから、splitでちまちま分割しなくとも正規表現でいけたんじゃと気づいたが直すのも面倒なのでこれでよしとする。