2015-09-25 61 views
0

我想在GUI中使用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.normpathos.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' –