使用Python删除空行

时间:2015-08-26 02:54:38

标签: python string text

我有一个由两列组成的文本文件,我想互相绘制。我需要从文本文件中删除最后一个空白行。

我尝试过各种各样的事情,例如:

file = open('test3.dat')
lines = file.readlines()
lines = lines[:-1]
w = open('test3.dat','w')
w.writelines([item for item in lines[:-1]])
w.close()

而且:

file = open('test3.dat')
lines = file.readlines() 
w = open('test3.dat','w')
del lines[-1] 
w.writelines(lines)
w.close()

然而,我总是最后一句空白。我错过了什么?

更新: 这将删除我的文件中的第二列,并转置第一列 - 现在我的文件只是一行,其中包含曾经是第一列的值。任何额外的帮助表示赞赏!

import fileinput
lines = [line.strip() for line in fileinput.FileInput('test3.dat') ]
open('test3.dat','w').writelines(lines)
w.close()

3 个答案:

答案 0 :(得分:0)

如果要删除所有空行,可以执行以下操作:

perl -pe 's/[^a-z]+(?=[^@\n]*@)//g'

要仅删除最后的空白行,请执行以下操作:

lines = [line.strip() for line in file.readlines() if len(line.strip()) != 0]

答案 1 :(得分:0)

似乎最后一行最后有一个换行符,就像其他所有行一样;在编辑器中查看时,它会显示最后一个空白行的外观。这不应该对你正在做的事情产生任何影响。

答案 2 :(得分:0)

您可以使用fileinput库和strip()功能删除空行,例如

import fileinput
lines = [line.strip() for line in fileinput.FileInput("test3.dat") ]

或者您可以使用isspace()功能,例如

lines = [line for line in fileinput.FileInput("test3.dat") if not line.isspace()]