python阅读.text文件,无法删除换行符

时间:2013-04-26 04:38:37

标签: python loops

我试图找出为什么它不会让我删除换行符,我的代码:

    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

2 个答案:

答案 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删除左侧空格。