0

我正在尝试编写一个脚本,我想要它做的一件事是调用 MP3Gain 的命令行版本并将我正在使用的文件传递给 MP3Gain 以标准化音量。这是我的代码:

import subprocess

class normalize():

    def __init__(self, file):  
        self.FileName = file  

    def work(self):
        command = [r"mp3gain.exe", "-r", r"-c ", self.FileName]
        subprocess.Popen(command,shell=True,stdout=subprocess.PIPE)

if __name__ == "__main__":
    test = normalize(r"C:\Users\CPC\Desktop\2013-01-20.mp3")
    test.work()

如果我使用相同的代码并打开不同的程序,它工作正常。如果我让程序将“命令”变量发送到文本文件,然后在 cmd 中将文本文件中的内容作为命令输入,它也可以正常工作。因此,python 子进程模块和 MP3Gain 之间似乎存在某种干扰。有人有这方面的经验吗?有没有其他方法可以完成同样的事情?任何帮助,将不胜感激。

4

1 回答 1

0

我遇到了同样的问题,事实证明,您需要从标准错误读取程序的输出,而不是标准输出

于 2013-06-22T08:46:54.253 回答