8
with open("text.txt", 'r') as file:
    for line in file:
        line = line.rstrip('\n' + '').split(':')
        print(line)

我在尝试删除正在生成的一系列数组中的空列表时遇到问题。我想让每一行都成为一个数组text.txt,这样我就能够准确地分别访问每一行的每个元素。

空列表显示为['']- 正如您在第四行中看到的那样,我试图明确地将它们剥离。空元素曾经被换行符填充,这些被成功删除使用.rstrip('\n').

编辑:

我对一些术语有误解,以上内容现已更新。本质上,我想摆脱空列表。

4

1 回答 1

18

由于我看不到您的确切行,因此很难为您提供完全符合您要求的解决方案,但是如果您想获取列表中非空字符串的所有元素,则可以这样做:

>>> l = ["ch", '', '', 'e', '', 'e', 'se']
>>> [var for var in l if var]
Out[4]: ['ch', 'e', 'e', 'se']

您也可以使用filterwithNonebool

>>> filter(None, l)
Out[5]: ['ch', 'e', 'e', 'se']
>>> filter(bool, l)
Out[6]: ['ch', 'e', 'e', 'se']

如果您希望摆脱带有空字符串的列表,那么对于您的具体示例,您可以这样做:

with open("text.txt", 'r') as file:
    for line in file:
        line = line.rstrip('\n' + '').split(':')
        # If line is just empty
        if line != ['']:
            print line
于 2013-11-09T11:55:12.720 回答