Bru*_*uce 6 python windows command-line-interface sublimetext sublimetext2
我有一个生成Windows命令的小Python脚本:
def quoted(s):
return '"' + s + '"'
import os
path = 'C:\\Program Files\\SumatraPDF\\SumatraPDF.exe'
params = ' -page 5 '
arg = 'D:\\Dropbox\\Final Term\\Final Draft.pdf'
cmd = quoted(path) + params + quoted(arg)
print cmd
os.system(cmd)
Run Code Online (Sandbox Code Playgroud)
这不会在Sublime Text 2中运行(按Ctrl+ B):
"C:\Program Files\SumatraPDF\SumatraPDF.exe" -page 5 "D:\Dropbox\Final Term\Final Draft.pdf"
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
[Finished in 0.1s]
Run Code Online (Sandbox Code Playgroud)
但如果我手动复制并粘贴命令(由此脚本输出),则运行cmd.exe.
我如何使其工作?
这是文件路径中的空间问题(这是 Windows 上的问题)。os.system() 打开命令 shell,此行为是从命令 shell 继承的。如果您打开“DOS 框”并在其中键入相同的内容,您将得到相同的结果 - Windows 命令 shell 需要引用带有嵌入空格的路径。您应该使用另一对引号。