0

スクリプトを作成しようとしていますが、実行したいことの 1 つは、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

私は同じ問題を経験しましたが、結局のところ、stdoutではなくstderrからプログラムの出力を読み取る必要があります

于 2013-06-22T08:46:54.253 に答える