【问题标题】:Command works in CMD but not Subprocess命令在 CMD 中有效,但在子进程中无效
【发布时间】:2016-10-09 01:20:42
【问题描述】:

我创建了一个将 opus 文件转换为 mp3 的 VLC 命令。此命令在 windows CMD 中有效,但在 Python 3.5 中的子进程中无效。我尝试了命令的各种配置,但没有成功,没有错误消息我只是看到一个没有进程的 VLC 虚拟命令行窗口。 这是命令。

p = subprocess.Popen(["C:/Program Files (x86)/VideoLAN/VLC/vlc.exe", "-I dummy -vvv "E:\\some_dir\\a.opus" --sout=#transcode{acodec=mpga,ab=192}:standard{access=file,dst="E:\\some_dir\\a.mp3"])

我可以提供所需的任何信息。非常感谢所有输入。

【问题讨论】:

  • 首先用单引号替换内部的双引号(反之亦然)。您当前所拥有的(未转义的嵌套双引号)是 Python 中的语法错误。
  • 嵌套引号是试图将每个参数放入同一个字符串的结果,这是不正确的开始。

标签: python subprocess vlc


【解决方案1】:

命令的每个参数都必须是列表中自己的元素:

p = subprocess.Popen(["C:/Program Files (x86)/VideoLAN/VLC/vlc.exe",
                      "-I", "dummy", "-vvv",
                      "E:\\some_dir\\a.opus",
                      "--",
                      "sout=#transcode{acodec=mpga,ab=192}:standard{access=file,dst=E:\\some_dir\\a.mp3"
                     ])

【讨论】:

    猜你喜欢
    • 2019-07-30
    • 2020-03-24
    • 2021-09-10
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 2021-11-01
    • 2012-02-13
    相关资源
    最近更新 更多