コマンドの実行後に返された文字列のリストがあり、'\n' で分割されています。
listname = output.decode('utf8').rstrip().split('\n')
を使用して印刷するprint(listname)
と、
['']
明らかに空の文字列を含むリストです
このため、私はlen(listname)
1として取得しています。
この空の文字列を削除する方法
これがあなたが探しているものだと思います:
filter(None,output.decode('utf8').rstrip().split('\n'))
詳細に:
>>> filter(None, ["Ford", "Nissan", ""])
['Ford', 'Nissan']
PSではpython 3+filter
はイテレータを返すので、を使用してlist(filter(..))
ください。
listname = [item for item in output.decode('utf8').rstrip().split('\n') if item]
output = output.decode('utf8').rstrip()
if output:
listname = []
else:
listname = output.split('\n')