Subprocess.call无法运行,但是如果将输出粘贴到cmd,它将运行

时间:2019-07-12 07:12:35

标签: python-3.x

我在子流程中遇到一些问题,我无法弄清为什么它会引发异常,正在拖曳其他帖子和旧的google,但没有一个帖子与此类似

lamepath = ("C:\Windows\System32\lame.exe --preset extreme ")
wavuse = ("E:\test\wavefile.wav")
mp3use = ("E:\test\mp3file.mp3")
subprocess.call(lamepath +wavuse +" " +mp3use)

但它会引发以下异常:C:\ Windows \ System32 \ lame.exe'无法识别为内部或外部命令,可操作程序或批处理文件。

如果我用print()得到相同的语句: C:\ Windows \ System32 \ lame.exe-预设极端“ E:\ test \ wavefile.wav”“ E:\ test \ mp3file.mp3”

如果我将此输出粘贴到cmd,则打印效果可以完美运行。

C:\ Windows \ System32 \位于PATH中,并且lame.exe确实存在。 COMSPEC也是正确的

1 个答案:

答案 0 :(得分:0)

今天,当您在64位Windows上使用32位进程时,我学到了一些新知识, 您尝试引用操作系统\ Windows \ System32中的文件 “有帮助”重写了路径,因此您实际引用 \ Windows \ SysWOW64,即32位可执行文件和DLL所在的地方。