wxpython拖动文件夹路径,在Windows上不使用空格



i具有以下代码,该代码允许用户拖放文件夹以获取文件夹路径。然后,我使用此文件夹路径,并使用Popen中的Windows中的命令行应用程序传递到命令行应用程序。这一切都很好,除非文件夹路径中有空格,否则会失败。我目前正在通过使用win32api.GetShortPathName(folder_list)将其缩短到DOS 8.3规格,但我想使用完整的绝对路径。我知道命令行应用程序会采用带空格的路径,因为我还使用带有拖放的批处理文件,该文件可与路径中的空格一起使用。我尝试插入逃生等,仍然没有运气。如何使其与带有空格的完整文件夹路径正常工作?

class SubmissionPane(wx.Panel):
    def __init__(self, parent, queue_control):
        wx.Panel.__init__(self, parent, -1)
        self.parent = parent
        self.queue_control = queue_control
        self.selected_folder = None
        self.txtTitle = wx.TextCtrl(self, pos=(125, 70), size=(215, 25), style= wx.SUNKEN_BORDER, value="Enter Series Title Here")
        self.txtTitle.Show(False)
        self.drop_target = MyFileDropTarget(self)
        self.SetDropTarget(self.drop_target)
    def SetSubmissionFolders(self, folder_list):
        """Called by the FileDropTarget when files are dropped"""
        print "Setting submission folders", folder_list
        self.tc_files.SetValue(','.join(folder_list))  
        self.selected_folders = folder_list
class MyFileDropTarget(wx.FileDropTarget):
    """"""
    def __init__(self, window):
        wx.FileDropTarget.__init__(self)
        print "Creating a drop file target..."
        self.window = window
    def OnDropFiles(self, x, y, filenames):
        self.window.SetSubmissionFolders(filenames)

我将其提交给Popen:

command1 = commandLineApplication + folder_list
process = Popen(command1, shell=True, stdin=PIPE)

您可能只需要在每个文件路径上放引号。通常有效。win32api.getShortPathName是一个整洁的技巧。

这是一种方法:

n = ['"%s"' % x for x in folderlist]

然后做

','.join(folder_list)

您在代码中提到。

相关内容

  • 没有找到相关文章

最新更新