1

重複の可能性:
Python からプログラムを実行するにはどうすればよいですか? パス内のスペースが原因で os.system が失敗する

Python からコマンド ラインでプログラム (MP3gain.exe) を呼び出そうとしています。私の問題は、Pythonがコマンドラインに送信しているコマンドの周りに['']を配置し、dosがそれでコマンドを解釈できないように見えることです。これが私のコードです。

import os
import subprocess
import Editor

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

    def work(self):
        command = [ 'mp3gain /r /c' + self.FileName]
        subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)


if __name__ == "__main__":
    test = normalize("filename.mp3")
    test.work()

これが役立つ場合、DOS で終了コードを出力すると、-2 になります。助けてくれてありがとう。

4

2 に答える 2

3

command最初のものとして mp3gain を持つ文字列のリストである必要があります。

command = ['mp3gain', '/r', '/c', self.FileName]
于 2012-11-21T21:33:59.330 に答える
0

を使用してプログラムを呼び出すことができますos.system。たとえば、プログラムでは次を使用できます。

os.system("mp3gain /r /c " + self.FileName)
于 2012-11-21T21:43:00.577 に答える