gpt4 book ai didi

python - 无法让 subprocess.call 在我的 python 脚本中执行命令

转载 作者:太空宇宙 更新时间:2023-11-04 05:24:02 25 4
gpt4 key购买 nike

我正在尝试制作一个脚本来运行 youtube-dl 包,以便直接从 youtube 视频中提取 mp3。

我可以用os.system()来做到这一点像这样:

#! /usr/bin/env python3
import os
#getting the youtube video link
vlink = input('Enter the youtube video link: ')
cmd = "youtube-dl --extract-audio --audio-format mp3 --audio-quality 0 " + vlink
os.system(cmd)

我想尝试使用 subprocess.call() 来完成此任务/subprocess.Popen() 。我尝试了很多在函数中输入参数的变体,但它们都返回错误,希望有人能指导我,谢谢!

最佳答案

通常,您可以使用shlex.split来分割参数:

import shlex
import subprocess
subprocess.call(shlex.split("youtube-dl --extract-audio --audio-format mp3 --audio-quality 0 " + vlink))

但是,您可能也不需要它:

import shlex
import subprocess
subprocess.call([
"youtube-dl",
"--extract-audio",
"--audio-format",
"mp3",
"--audio-quality",
"0",
vlink])

请注意,默认情况下,subprocess 将绕过您的 shell,因此,如果您要在 shell 配置文件中对环境进行路径修改,则可能需要指定特定的 env

关于python - 无法让 subprocess.call 在我的 python 脚本中执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36160745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com