从列表中删除空项(Python)

时间:2010-02-17 14:07:47

标签: python regex list split

我正在读取一个格式不正确的Python文件,值由多个空格和一些标签分隔,所以返回的列表有很多空项,如何删除/避免这些?

这是我目前的代码:

import re

f = open('myfile.txt','r') 

for line in f.readlines(): 
    if re.search(r'\bDeposit', line):
        print line.split(' ')

f.close()

由于

4 个答案:

答案 0 :(得分:11)

不要明确指定' '作为分隔符。 line.split()将在所有空格上分开。它等同于使用re.split

>>> line = '  a b   c \n\tg  '
>>> line.split()
['a', 'b', 'c', 'g']
>>> import re
>>> re.split('\s+', line)
['', 'a', 'b', 'c', 'g', '']
>>> re.split('\s+', line.strip())
['a', 'b', 'c', 'g']

答案 1 :(得分:2)

for line in open("file"):
    if " Deposit" in line:
         line=line.rstrip()
         print line.split()

更新:

for line in open("file"):
    if "Deposit" in line:
         line=line.rstrip()
         print line[line.index("Deposit"):].split()

答案 2 :(得分:1)

linesAsLists = [line.split() for line in open('myfile.txt', 'r') if 'Deposit' in line)]

答案 3 :(得分:0)

为什么不在处理它之前做line.strip()?此外,您可以使用re.split使用像'\ s +'这样的正则表作为分隔符。