os.system调用位于名称中包含空格的目录的exe

Syn*_*pse 14 python windowserror

我的代码简单如下:

file = 'C:\\Exe\\First Version\\filename.exe'
os.system(file)
Run Code Online (Sandbox Code Playgroud)

当我运行这个程序时,会引发windowserror,找不到指定的文件.我发现问题与"第一版"之间的空白有关.那么我能找到一种绕过这个问题的方法吗?

PS:如果变量'file'将作为arg传递到另一个func中怎么办?

MRA*_*RAB 15

在路径周围放置引号将起作用:

file = 'C:\\Exe\\First Version\\filename.exe'
os.system('"' + file + '"')
Run Code Online (Sandbox Code Playgroud)

但更好的解决方案是使用subprocess模块:

import subprocess
file = 'C:\\Exe\\First Version\\filename.exe'
subprocess.call([file])
Run Code Online (Sandbox Code Playgroud)


小智 7

我用过这个:

import subprocess, shlex
mycmd='"C:\\Program Files\\7-Zip\\7z" x "D:\\my archive.7z" -o"D:\\extract folder" -aou'
subprocess.run(shlex.split(mycmd))
Run Code Online (Sandbox Code Playgroud)