在Python中使用空格执行Windows路径

时间:2016-01-03 21:52:12

标签: python windows

我正在尝试构建一个模拟Windows环境中Windows的“运行”功能的程序。现在我知道这听起来有点傻,但我们在“有限”的计算机上,并且cmd完全锁定,所以我们别无选择,只能为我们的需求构建自己的程序文件。

具体来说,我要做的是一个小实用程序,它将询问驱动器,主题和课程编号,并基于打开完整路径。

  

即。 W Python 47 - > w:// courses / subjects / python / classes / 47 - Arrays&指针

我已经完成了Python的大部分工作,并且达到了最后阶段,我只需要根据数字得到完整路径,代码如下:

os.system(start 'drive + '://courses/subjects/' + subject + '/classes/' + class')

其中drive,subject和class是保存当前路径数据的变量。

问题是,当文件路径中有空格时,Windows无法找到它,并产生错误。

简单的解决方案是使用双引号,但由于某种原因,start命令上的双引号被视为cmd命令被阻止..

关于变通方法的任何想法,或者Python都不是可行的方法,因此任何关于不同语言的想法都会更容易。 (我具有C ++,Python,Java的基础知识)

P.S。这不是我正在使用的确切代码,明天我会发布。

1 个答案:

答案 0 :(得分:1)

start之后的第一个参数是新创建的命令提示符窗口的名称,第二个和第三个参数应分别是应用程序及其参数的路径。

start "" "c:\path with spaces\app.exe" param1 "param with spaces"

如果您想使用os.system,可以尝试:

norm_path = os.path.normpath("{0}://courses/subjects/{1}/classes/{2}".format (drive, subject, class_name))
os.system('start "" "' + norm_path + '"')

但我可能会使用reverse

norm_path = os.path.normpath("{0}://courses/subjects/{1}/classes/{2}".format (drive, subject, class_name))
os.startfile( norm_path )

请注意:您不应使用名为class的变量。