【问题标题】:Python - Remove line with less than "x" number of characters while preserving blank linesPython - 删除字符数少于“x”的行,同时保留空白行
【发布时间】:2019-07-25 13:49:26
【问题描述】:

我正在打开一个包含列和行的文本文件。有些行的字符比其他行多,我正在尝试删除只有

该文件还包含一些我需要保留在文件中的空白分隔线。

with open(outfile) as f, open(outfile2,'w') as f2:
     for x in f:
           if (':') not in x and (',') not in x:
               newline=x.strip()+'\n'
               if len(newline.rstrip()) >= 43:
                   f2.write(newline)

第一个if-statement 删除了文件中我不想要的一些文本行,同时还添加了我需要的那些额外的分隔线。第二个if-statement 尝试删除具有

【问题讨论】:

    标签: python whitespace strip blank-line


    【解决方案1】:

    使用以下综合方法:

    with open(outfile) as f, open(outfile2, 'w') as f2:
        for line in f:
            line = line.strip()
            if not line or (':' not in line and ',' not in line and len(line) >= 43):
                f2.write(line + '\n')
    

    关键的if 语句允许写入空行或满足所需条件的行。

    【讨论】:

      【解决方案2】:
      with open(outfile) as f, open(outfile2,'w') as f2:
           for x in f:
                 if not x.strip().replace("\n",""):
                    f2.write(x)
                    continue
                 elif (':') not in x and (',') not in x:
                     newline=x.strip()+'\n'
                     if len(newline.rstrip()) >= 43:
                         f2.write(newline)
      

      我想这个额外的 if 语句会解决你的问题。如果不是,您可以创建一个条件语句的变体。

      【讨论】:

        猜你喜欢
        • 2020-02-05
        • 2012-05-14
        • 2016-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多