首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直到获得python的输入,os.system才能工作。

直到获得python的输入,os.system才能工作。
EN

Stack Overflow用户
提问于 2020-10-20 16:08:32
回答 1查看 290关注 0票数 0

我试图运行一个youtube-dl命令,但是当os.system(命令)运行时,它正在终端上等待一个输入(不需要输入)。我按回车2-3次,比它开始下载.

代码语言:javascript
复制
url = sys.argv[1]
command = "youtube-dl " + url
print("downloading...")
os.system(command)
print("test")

我看不见“测试”输出。命令在cmd上正常工作。等待或子进程命令无法工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-20 16:37:47

使用subprocess而不是os.system可以让您设置stdin=subprocess.DEVNULL,这样它就不能从stdin中读取(而不需要转到TTY,而大多数程序不这样做)。另外,传递一个列表并保留默认的shell=False避免了安全问题,在这些问题中,shell可以将URL中的内容视为要运行的命令。

代码语言:javascript
复制
subprocess.run(["youtube-dl", url], stdin=subprocess.DEVNULL)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64449112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档