Python subprocess.call不使用所有参数

时间:2016-08-14 17:54:52

标签: python subprocess

我正在尝试运行此代码,该代码应使用VLC打开所选的mp3,使用第1行作为音频输出,并在完成后关闭。但这些论点似乎都没有通过。

Python代码

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)

哪个应该与此命令行输入类似地运行

"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

命令行输入正常播放和播放,并播放到第1行。蟒蛇代码播放和退出,但不播放到第1行。

编辑:我应该提到我正在使用python 3.4.4

1 个答案:

答案 0 :(得分:0)

由于shell为true,因此列表的字符串表示形式将传递给命令行,而这不是您想要的。仔细查看此页面上的示例https://docs.python.org/2/library/subprocess.html