我试图找出为什么它不会让我删除换行符,我的代码:
def parsefile(f):
for line in open(f):
li=line.strip()
if not li.startswith("%"):
if not li.startswith(' '):
if not li.startswith('\n'):
print(line.replace("\n",""))
#print(line.rstrip())
即使我告诉它忽略'\ n'仍然在输出中留下空格,看起来像这样
type1
type2
type3
type4
什么时候应该
type1
type2
type3
type4
。我的猜测是它与我的循环离开空间有关。
我正在访问的文件是:
%spam
type1
type2
type3
%spam
type4
答案 0 :(得分:4)
据我所知,你实际上想跳过空行,换行符已经在strip
之后消失了。
def parsefile(f):
for line in open(f):
li=line.strip()
if li and not li.startswith("%"):
print(li)
当你逐行读取一个文件时,你会得到包含换行符的空行,所以对于空行,你只需要"\n"
,它在剥离后变为""
。正如评论中所述,if li:
在这种情况下是if li != "":
的缩写。
答案 1 :(得分:0)
此选项可以帮助您:
def parse_file(filename):
f = open(filename)
for line in f.readlines():
li=line.lstrip()
if li and (li[0] != "%"):
print(li)
注意:您可以使用lstrip
删除左侧空格。