Python -- 子进程打开并调用相同的错误 -- none 类型不可迭代?
Python -- subprocess popen and call same error -- none type not iterable?
我一直在使用 os.system 作为 shell 命令,直到我发现它已被弃用。所以我试图切换到使用子流程。这是我的用途:
command = genConfig.MODETECT_SWITCH_COMMAND.append(state)
subprocess.Popen(command, stdout=subprocess.PIPE).communicate()[0]
MODETECT_SWITCH_COMMAND = ["zmpkg.pl"]
和一些常规 ping:
command = genConfig.PING_COMMAND.append(host)
response = subprocess.Popen(command, stdout=subprocess.PIPE).communicate()[0]
if "unreachable" in response or "timed out" in response:
response = False
else:
response = True
break
PING_COMMAND = ["ping", "-c 1 -W 1"]
无论我在哪里做这些事情,我都会收到这个错误:
...tracebacks...
File "/usr/lib/python2.7/subprocess.py", line 1198, in _execute_child
args = list(args)
TypeError: 'NoneType' object is not iterable
而且我不明白为什么。我重新检查了我对 subprocess.popen 多个地方的使用,它似乎是正确的。我可能做错了什么?谢谢。
你有这个:
MODETECT_SWITCH_COMMAND = ["zmpkg.pl"]
当你这样做时:
command = genConfig.MODETECT_SWITCH_COMMAND.append(state)
您正在将 list.append
调用的输出分配给 command
,该调用在 returns None
中运行。
也就是说,您似乎正在分配 command = None
。
subprocess
模块很困惑,因为它期望第一个位置参数是可迭代的,而不是 None
。
我一直在使用 os.system 作为 shell 命令,直到我发现它已被弃用。所以我试图切换到使用子流程。这是我的用途:
command = genConfig.MODETECT_SWITCH_COMMAND.append(state)
subprocess.Popen(command, stdout=subprocess.PIPE).communicate()[0]
MODETECT_SWITCH_COMMAND = ["zmpkg.pl"]
和一些常规 ping:
command = genConfig.PING_COMMAND.append(host)
response = subprocess.Popen(command, stdout=subprocess.PIPE).communicate()[0]
if "unreachable" in response or "timed out" in response:
response = False
else:
response = True
break
PING_COMMAND = ["ping", "-c 1 -W 1"]
无论我在哪里做这些事情,我都会收到这个错误:
...tracebacks...
File "/usr/lib/python2.7/subprocess.py", line 1198, in _execute_child
args = list(args)
TypeError: 'NoneType' object is not iterable
而且我不明白为什么。我重新检查了我对 subprocess.popen 多个地方的使用,它似乎是正确的。我可能做错了什么?谢谢。
你有这个:
MODETECT_SWITCH_COMMAND = ["zmpkg.pl"]
当你这样做时:
command = genConfig.MODETECT_SWITCH_COMMAND.append(state)
您正在将 list.append
调用的输出分配给 command
,该调用在 returns None
中运行。
也就是说,您似乎正在分配 command = None
。
subprocess
模块很困惑,因为它期望第一个位置参数是可迭代的,而不是 None
。