我正在读取一个格式不正确的Python文件,值由多个空格和一些标签分隔,所以返回的列表有很多空项,如何删除/避免这些?
这是我目前的代码:
import re
f = open('myfile.txt','r')
for line in f.readlines():
if re.search(r'\bDeposit', line):
print line.split(' ')
f.close()
由于
答案 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 +'这样的正则表作为分隔符。