2016-08-14 11 views
0

VLCで選択したmp3を開き、ライン1をオーディオ出力として使用し、終了したら閉じるようにしています。しかし、議論がすべて終わっているように見えるわけではありません。すべての引数を使用していないPython subprocess.call

Pythonコードコマンドライン入力を果たし、適切に終了し、1 Pythonのコードが再生して終了行目に果たしている

"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" C:\Users\Aidan\Desktop\test.mp3 --aout=waveout --waveout-audio-device="Line 1 (Virtual Audio Cable) ($1,$64)" --play-and-exit 

このコマンドライン入力と同様に実行する必要があります

import subprocess 
vlcpath = "C:\\Program Files (x86)\\VideoLAN\\VLC\\vlc.exe" 
audiopath = "C:\\Users\\Aidan\\Desktop\\test.mp3" 
args = [vlcpath, audiopath, "--aout=waveout", '--waveout-audio-device="Line 1 (Virtual Audio Cable) ($1,$64)"', "--play-and-exit"] 
subprocess.call(args, shell=True) 
for i in args: #for diagnostic purposes 
    print(i) 

ライン1には適用されません。

編集:私は、Pythonを使用していることを言及する必要があります。3.4.4

答えて

0

シェルが真であるので、リストの文字列表現はあなたが望むものではないコマンドラインに渡されます。このページの例をよく見てくださいhttps://docs.python.org/2/library/subprocess.html

+0

shell引数を削除してshell = Falseを使ってみましたが、修正してみました。 shell = Trueのセキュリティ問題についてリンクしているページを読むと、shell = Falseのままになります。 – jamd315

関連する問題