我想填充字典newDict
在下面的代码:有什么不对填充字典
def sessions():
newDict = {}
output = exe(['loginctl','list-sessions']) # uses subprocess.check_output(). returns shell command's multiline output
i = 0;
for line in output.split('\n'):
words = line.split()
newDict[i] = {'session':words[0], 'uid':words[1], 'user':words[2], 'seat':words[4]}
i += 1
stdout(newDict) # prints using pprint.pprint(newDict)
但它只是不断给我的错误:
newDict[i] = {'session':words[0], 'uid':words[1], 'user':words[2], 'seat':words[4]}
IndexError: list index out of range
如果我在循环做print words
,这里是我得到的:
['c3', '1002', 'john', 'seat0']
['c4', '1003', 'jeff', 'seat0']
我在做什么错?
什么是exe?你是不是指执行官? –
可能有少于5个单词的行,所以'words [4]'引发了一个IndexError。你可能在最后有一个空行,试着在output.strip()。line中分出('\ n')'来摆脱它。 –
@AndrésPérez-AlbelaH。编辑的问题。 – aceph