0

我试图弄清楚为什么它不允许我删除换行符,我的代码:

    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
4

2 回答 2

4

据我了解,您实际上想跳过空行,换行符已经在strip.

def parsefile(f):
    for line in open(f):
        li=line.strip()
        if li and not li.startswith("%"):
            print(li)

当您逐行读取文件时,您会得到每一行,包括带有换行符的空行,因此对于空行,您得到的只是剥离后"\n"的行。""正如评论中所解释的,if li:在这种情况下是 of 的缩写if li != "":

于 2013-04-26T04:54:40.477 回答
0

此选项可以帮助您:

def parse_file(filename):
    f = open(filename)
    for line in f.readlines():
        li=line.lstrip()
        if li and (li[0] != "%"):
            print(li)

注意:您可以使用lstrip.

于 2013-04-26T06:56:41.067 回答