2011-06-03 71 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