Python 路径中有空格的os.system

Python 路径中有空格的os.system,python,system,Python,System,我正在尝试使用os.system调用C:/program文件中的程序 该目录名中的空格会把每次尝试都弄糟。这是我的密码: cmd = 'C:Program Files\OpenSCAD\openscad.exe -o block0.stl block0.scad' print cmd os.system(cmd) 太空会毁掉一切。我已经尝试了这里列出的五个标点符号版本(包括其他帖子中推荐的一些版本),包括源标点符号、Python看到的结果字符串以及来自os.system的结果 你如何给它加标点

我正在尝试使用
os.system
调用
C:/program文件中的程序

该目录名中的空格会把每次尝试都弄糟。这是我的密码:

cmd = 'C:Program Files\OpenSCAD\openscad.exe -o block0.stl block0.scad'
print cmd
os.system(cmd)
太空会毁掉一切。我已经尝试了这里列出的五个标点符号版本(包括其他帖子中推荐的一些版本),包括源标点符号、Python看到的结果字符串以及来自
os.system
的结果

你如何给它加标点以使其正确

cmd = 'C:Program Files\OpenSCAD\openscad.exe -o block0.stl block0.scad'
cmd = 'C:"Program Files"\OpenSCAD\openscad.exe -o block0.stl block0.scad'
cmd = 'C:"Program Files\OpenSCAD\openscad.exe" -o block0.stl block0.scad'
cmd = 'C:""Program Files\OpenSCAD\openscad.exe"" -o block0.stl block0.scad'




同样的事情



(推荐)


你几乎有过几次。问题是,您要么需要使用双反斜杠,因为反斜杠是Python字符串中的转义字符,要么使用带有
r
前缀的原始字符串。但是,无论哪种情况,在
C:
之后都必须有反斜杠,并在名称中包含空格的部分周围加引号。以下任何一个示例都应该有效:

cmd = 'C:\\"Program Files\\OpenSCAD\\openscad.exe" -o block0.stl block0.scad'
cmd = r'C:\"Program Files\OpenSCAD\openscad.exe" -o block0.stl block0.scad'
cmd = "\"C:\\Program Files\\OpenSCAD\\openscad.exe\" -o block0.stl block0.scad"
cmd = r'"C:\Program Files\OpenSCAD\openscad.exe" -o block0.stl block0.scad'

请注意,您将无法使用双引号和原始Python字符串,因为您将无法转义字符串中的双引号和路径。

您几乎有过几次这样的情况。问题是,您要么需要使用双反斜杠,因为反斜杠是Python字符串中的转义字符,要么使用带有
r
前缀的原始字符串。但是,无论哪种情况,在
C:
之后都必须有反斜杠,并在名称中包含空格的部分周围加引号。以下任何一个示例都应该有效:

cmd = 'C:\\"Program Files\\OpenSCAD\\openscad.exe" -o block0.stl block0.scad'
cmd = r'C:\"Program Files\OpenSCAD\openscad.exe" -o block0.stl block0.scad'
cmd = "\"C:\\Program Files\\OpenSCAD\\openscad.exe\" -o block0.stl block0.scad"
cmd = r'"C:\Program Files\OpenSCAD\openscad.exe" -o block0.stl block0.scad'

请注意,您将无法使用双引号和原始Python字符串,因为您将无法转义字符串中的双引号和路径。

您是否尝试过:`''C:Program Files\OpenSCAD\OpenSCAD.exe“-o block0.stl block0.scad'您尝试过:`'C:Program Files\OpenSCAD\OpenSCAD.exe“-o block0.stl block0.scad'它成功了!我喜欢你的第二个和第四个答案,它们很有道理!但是看看open scad说了什么:无法打开文件C:/Users/Ken/3D/Tetris3D/Files/OpenSCAD/OpenSCAD.exe-o block4.stl block4.scad:系统找不到指定的路径。@Joymaker。你是不是无意中引用了整件事?成功了!我喜欢你的第二个和第四个答案,它们很有道理!但是看看open scad说了什么:无法打开文件C:/Users/Ken/3D/Tetris3D/Files/OpenSCAD/OpenSCAD.exe-o block4.stl block4.scad:系统找不到指定的路径。@Joymaker。你是不是无意中引用了整件事?
cmd = 'C:\"Program Files\OpenSCAD\openscad.exe\" -o block0.stl block0.scad'
cmd = 'C:""Program Files\OpenSCAD\openscad.exe"" -o block0.stl block0.scad'
C:""Program Files\OpenSCAD\openscad.exe"" -o block0.stl block0.scad
'C:""Program' is not recognized as an internal or external command,
operable program or batch file.
cmd = r'C:Program Files\OpenSCAD\openscad.exe -o block0.stl block0.scad'
C:Program Files\OpenSCAD\openscad.exe -o block0.stl block0.scad
'C:Program' is not recognized as an internal or external command,
operable program or batch file.
cmd = 'C:\\"Program Files\\OpenSCAD\\openscad.exe" -o block0.stl block0.scad'
cmd = r'C:\"Program Files\OpenSCAD\openscad.exe" -o block0.stl block0.scad'
cmd = "\"C:\\Program Files\\OpenSCAD\\openscad.exe\" -o block0.stl block0.scad"
cmd = r'"C:\Program Files\OpenSCAD\openscad.exe" -o block0.stl block0.scad'