사용자가 폴더를 드래그 앤 드롭하여 폴더 경로를 가져올 수있는 아래 코드가 있습니다. 그런 다음이 폴더 경로를 가져 와서 Popen을 사용하여 Windows의 명령 줄 응용 프로그램으로 전달합니다. 폴더 경로에 공백이있는 경우를 제외하고 모두 제대로 작동합니다. 그러면 실패합니다. 현재 win32api.GetShortPathName(folder_list)
을 사용하여 DOS 8.3 사양으로 줄이는 방법을 사용하고 있지만 전체 절대 경로를 사용하고 싶습니다. 나는 명령 행 응용 프로그램이 공백이있는 경로를 사용한다는 것을 알고 있습니다. 경로에서 공백으로 작동하는 드래그 앤 드롭으로 배치 파일을 사용하기 때문입니다. 이스케이프 삽입 등을 시도했지만 여전히 운이 없다. 공백이있는 전체 폴더 경로에서 제대로 작동하려면 어떻게해야합니까?Wxpython 끌어서 놓기 폴더 경로, Windows에서 공백으로 작동하지 않는 Popen
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)
한 번 치료 한 후 올바른 장소에 넣어 환호했습니다. – speedyrazor