首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >` `TypeError:`subprocess.call`中的'NoneType‘对象不可迭代`

` `TypeError:`subprocess.call`中的'NoneType‘对象不可迭代`
EN

Stack Overflow用户
提问于 2018-01-17 09:58:12
回答 2查看 922关注 0票数 0

根据PEP324,我正在尝试应用subprocess.call而不是os.system

在打开多个urls的任务中

代码语言:javascript
复制
import subprocess
open_chromes = [
'https://en.wikipedia.org/wiki/Embodied_cognition',
'https://docs.python.org/3.6/index.html',
'https://docs.djangoproject.com/en/1.11/',]
for chrome in open_chromes:
    cmd = ['open', '-na', 'Google Chrome']
    subprocess.call(cmd.append(chrome))

错误报告为

代码语言:javascript
复制
TypeError: 'NoneType' object is not iterable

或者,使用os.system是非常简单的。

代码语言:javascript
复制
import os
open_chromes = [
'https://en.wikipedia.org/wiki/Embodied_cognition',
'https://docs.python.org/3.6/index.html',
'https://docs.djangoproject.com/en/1.11/',]

for chrome in open_chromes:
    os.system('open -na "Google Chrome" {}'.format(chrome))

我的代码有什么问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-17 10:01:04

list的append函数不返回任何内容,所以subprocess.call(cmd.append(chrome))等同于subprocess.call(None),这就是问题所在。在进行调用之前,您需要追加

票数 3
EN

Stack Overflow用户

发布于 2021-08-16 08:33:28

如果您希望将其保留为一行,并且不更改原始数组-请使用+运算符

代码语言:javascript
复制
subprocess.call(cmd + chrome)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48292555

复制
相关文章

相似问题

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