我正在尝试构建一个在 Windows 环境中模仿 Windows 的“运行”功能的程序。现在我知道这听起来有点傻,但我们使用的是“有限”计算机,并且 cmd 完全锁定,因此我们别无选择,只能根据需要构建自己的程序文件。
具体来说,我想做的是一个小实用程序,它将询问驱动器、主题和类(class)编号,并基于此打开完整路径。
i.e. W Python 47 -> w://courses/subjects/python/classes/47 - Arrays & Pointers
我已经用 Python 完成了大部分工作,并达到了最后阶段,我需要仅根据数字获取完整路径,代码如下:
os.system(start 'drive + '://courses/subjects/' + subject + '/classes/' + class')
其中drive、subject和class是保存当前路径数据的变量。
问题在于,当文件路径中有空格时,Windows 无法找到它,并产生错误。
简单的解决方案是加双引号,但由于某种原因,start 命令上的双引号被视为被阻止的 cmd 命令。
关于解决方法的任何想法,或者Python可能不是可行的方法,因此关于不同语言的任何想法都会更容易。 (我有C++、Python、Java基础知识)
附:这不是我正在使用的确切代码,我明天将发布该代码。
最佳答案
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 + '"')
但我可能会使用 os.startfile
:
norm_path = os.path.normpath("{0}://courses/subjects/{1}/classes/{2}".format (drive, subject, class_name))
os.startfile( norm_path )
请注意:您不应使用名为class
的变量。
关于python - 在Python中执行带空格的Windows路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34582030/