我正在尝试构建一个模拟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。这不是我正在使用的确切代码,明天我会发布。
答案 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
的变量。