栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 面试经验 > 面试问答

使用参数从subprocess.call调用应用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用参数从subprocess.call调用应用

您没有使用通话权。查看简介或文档中的任何示例。call的第一个参数是“ args”,这是一个参数序列,其中arg [0]是要运行的程序。

因此,当您执行此操作时:

s.call("gpio -g read 17")

子流程可以通过两种方式对此进行解释。它应该运行带有参数“ p”,“ i”,“ o”,“”等的名为“
g”的程序。(请记住,字符串是字符序列。)它可能会运行名为“ gpio -g
read”的程序17英寸,无其他参数。无论哪种方式,都不会找到这样的程序。(除非您碰巧在PATH上有一个名为“ g”或“ gpio
-g读取17”的程序,在这种情况下,它会做错事而不是给您错误……)


您想要的是:

s.call(["gpio", "-g", "read", "17"])

那么,如果您通过了,为什么这项工作有效

shell=True
?因为这整个字符串都传递给了外壳程序,然后外壳程序对命令行进行了自己的解析,并用空格分隔了内容。这就像打电话
os.system("gpio-g read 17")

请注意,以上所有内容都被简化了一些(它忽略Windows,而shell解析实际上并不仅仅是“用空格分隔”,依此类推),因此您应该阅读文档。(此外,撰写

subprocess
文档的人比我更好。)



转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/640238.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号