1

我有一个命令执行后返回的字符串列表,在“\ n”上拆分。

listname = output.decode('utf8').rstrip().split('\n')

当我使用打印时print(listname),我得到

['']

显然这是一个包含空字符串的列表

正因为如此,我得到len(listname)了 1。

如何删除这个空字符串

4

3 回答 3

5

我认为这就是你要找的:

filter(None,output.decode('utf8').rstrip().split('\n'))

详细说明:

>>> filter(None, ["Ford", "Nissan", ""])
['Ford', 'Nissan']

PS 在 python 3+filter返回迭代器,所以使用list(filter(..)).

于 2013-05-14T14:13:57.610 回答
3
listname = [item for item in output.decode('utf8').rstrip().split('\n') if item]
于 2013-05-14T14:14:06.017 回答
1
output = output.decode('utf8').rstrip()
if output:
    listname = []
else:
    listname = output.split('\n')
于 2013-05-14T14:14:21.283 回答