2011-06-03 45 views
0

我想知道你是否可以幫助我使用我的新Python程序。我最近在GUI上添加了一個瀏覽按鈕,使事情更「用戶友好」。我告訴python當用戶被要求瀏覽文件時只接受* .pvt文件...現在,我還想知道如何告訴python使用用戶瀏覽的路徑並打開一個cmd窗口[使用子進程。 Popen(「cmd.exe」)]和CD到該用戶定義的路徑..任何想法?cd到用戶定義的路徑

這裏是我迄今爲止...

def OnAbout3(self, event): 
      """ 
      Browse for file 
      """ 
      wildcard = "Select File (*.pvt)|*.pvt" 
      dialog = wx.FileDialog(None, "Choose a file", 
            wildcard=wildcard, 
            style=wx.OPEN) 
      if dialog.ShowModal() == wx.ID_OK: 
       path = dialog.GetPaths() 
       #######this is where i wanted to do something like this: 
       subprocess.Popen("cmd.exe") 
       #I wished cmd could simply cd to the variable, path 
       os.system('cd path') 
       dialog.Destroy() 

所以,很顯然,這個CD不給路徑。我怎樣才能做到這一點??

+1

'cmd.exe/k cd path'如何? – Gabe 2011-06-03 13:43:01

回答

4

你有沒有嘗試這個辦法:

subprocess.Popen('cmd.exe', cwd=path) 

這是基於這樣的假設,你真的不想要cd,而是要在當前工作目錄設置 - 這是一職條件cd ...

查看subprocess module瞭解更多精彩的參數和示例!

+0

它沒有工作..我得到了一個錯誤使用此代碼..「必須是字符串,而不是列表。」 – user715578 2011-06-03 13:53:45

+1

@ user715578:使用'dialog.GetPath()',而不是'.GetPaths()'。無論如何,你不允許多個選擇,並且你想要1個路徑,而不是文件列表。 – geoffspear 2011-06-03 14:02:16

+0

它說目錄名稱是無效的。:( – user715578 2011-06-03 14:08:13