我有一个由两列组成的文本文件,我想互相绘制。我需要从文本文件中删除最后一个空白行。
我尝试过各种各样的事情,例如:
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()
答案 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()]