我正在尝试写一个脚本,我想让它做的一件事是调用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()如果我使用相同的代码并打开一个不同的程序,它会工作得很好。如果我让程序将" command“变量发送到文本文件,然后在cmd中键入文本文件中的内容作为命令,它也可以正常工作。因此,在Python子流程模块和MP3Gain之间似乎存在某种干扰。有谁有这方面的经验吗?有没有其他方法来完成同样的事情?任何帮助都将不胜感激。
发布于 2013-06-22 16:46:54
我也遇到过同样的问题,您需要从stderr而不是stdout读取程序的输出
https://stackoverflow.com/questions/14574707
复制相似问题