2015-09-25 5 views
0

Я пытаюсь запустить командную строку в графическом интерфейсе с помощью os.system, чтобы помочь нашим менее техническим сотрудникам. Я использую os.system. У меня были проблемы с подпроцессом. Я близко, но я получаю странный вывод моего пути к папке ..Каталог Python и PYQT:

def selectFile(self): 


    self.listWidget.clear() # In case there are any existing elements in the list 
    directory = QtGui.QFileDialog.getExistingDirectory(self, "Pick a folder") 
    print directory 


    for file_name in os.listdir(directory): 
     if file_name.endswith(".csv"): 
      self.listWidget.addItem(file_name) 
      print (file_name) 
    self.directory = directory 





def osconvertfile(self): 


    directoryPath = self.directory 
    print directoryPath 

    cmd = ('python /Users/eeamesX/work/data-scripts/longFileScripts/createXMLFromCSVSept.py ' 
      +str(directoryPath)) 
    print cmd 
    os.system(cmd) 

Я получаю сообщение об ошибке или неверный каталог из-за ./ достраи- ..

.//Users/eeamesX/work/data/Sept_1_upload/priority_2/transcriptsAudoSplits/09012015_331_male3_r1_seg1/ 

Любым способом почини это??

ответ

1

Вы пытались использовать os.path.normpath и os.path.abspath?

def osconvertfile(self): 
    directoryPath = os.path.abspath(os.path.normpath(self.directory)) 
    print directoryPath 

    cmd = 'python /Users/eeamesX/work/data-scripts/longFileScripts/createXMLFromCSVSept.py %s' directoryPath 
    print cmd 
    os.system(cmd) 
+0

Я получаю сообщение об ошибке с помощью этого initial_slashes = path.startswith («/») AttributeError: объект «QString» не имеет атрибута «StartsWith» – Anekdotin

+0

, так как вы не ответила, я думаю, что оставляет вас с правильным ответом , Я все понял. :) – Anekdotin

+0

Если вы используете PyQt4, вам нужно использовать 'path.startsWith (...)': http://pyqt.sourceforge.net/Docs/PyQt4/qstring.html. Если вы используете PyQt5 вместо этого, 'QString' автоматически преобразуется в python' str' –