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"ファイルを 1 行ずつ読み取ると、空白を含むすべての行が改行文字で取得されるため、空の行の場合は、削除後に取得されます""。コメントで説明されているように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 に答える