os.system 路径中有空格
os.system with spaces in path
我正在尝试使用 os.system
调用 C:/Program Files
中的程序。
该目录名称中的 space 每次尝试都搞砸了。这是我的代码:
cmd = 'C:Program Files\OpenSCAD\openscad.exe -o block0.stl block0.scad'
print cmd
os.system(cmd)
Space毁了东西。我已经尝试了这里列出的大约五个标点符号版本(包括其他帖子中推荐的一些)以及源标点符号,Python 看到的结果字符串,以及 os.system
.[=27= 的结果]
如何正确标点符号?
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 = 'C:"Program Files"\OpenSCAD\openscad.exe -o block0.stl block0.scad'
C:"Program Files"\OpenSCAD\openscad.exe -o block0.stl block0.scad
The system cannot find the path specified.
cmd = 'C:"Program Files\OpenSCAD\openscad.exe" -o block0.stl block0.scad'
C:"Program Files\OpenSCAD\openscad.exe" -o block0.stl block0.scad
The system cannot find the path specified.
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'
(推荐here)
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.
你几乎有几次。问题是您要么需要放置双反斜杠,因为反斜杠是 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 字符串,因为您无法转义双引号和字符串中的路径。
我正在尝试使用 os.system
调用 C:/Program Files
中的程序。
该目录名称中的 space 每次尝试都搞砸了。这是我的代码:
cmd = 'C:Program Files\OpenSCAD\openscad.exe -o block0.stl block0.scad'
print cmd
os.system(cmd)
Space毁了东西。我已经尝试了这里列出的大约五个标点符号版本(包括其他帖子中推荐的一些)以及源标点符号,Python 看到的结果字符串,以及 os.system
.[=27= 的结果]
如何正确标点符号?
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 = 'C:"Program Files"\OpenSCAD\openscad.exe -o block0.stl block0.scad'
C:"Program Files"\OpenSCAD\openscad.exe -o block0.stl block0.scad
The system cannot find the path specified.
cmd = 'C:"Program Files\OpenSCAD\openscad.exe" -o block0.stl block0.scad'
C:"Program Files\OpenSCAD\openscad.exe" -o block0.stl block0.scad
The system cannot find the path specified.
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'
(推荐here)
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.
你几乎有几次。问题是您要么需要放置双反斜杠,因为反斜杠是 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 字符串,因为您无法转义双引号和字符串中的路径。