コマンドの実行後に返された文字列のリストがあり、'\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')