【问题标题】:Get rid of all white spaces in between lines消除行与行之间的所有空白
【发布时间】:2012-01-16 17:13:14
【问题描述】:

所以说我有一些这样的文字:

line num 1
line num 2

line num 3



line num 4

我正在尝试删除第 2 行和第 3 行以及第 3 行和第 4 行之间的所有新行,同时将所有行 num 放在单独的新行上。我将如何做到这一点?我已经尝试将它们放入列表中,然后循环遍历它们并取出所有单独的 '\n'

例如:

obj=['line num 1','line num 2','\n','line num 3','\n','\n','line num4']
a=-1
for i in obj:
    a+=1
    if i=='\n':
        print 'yes'
        del obj[a]


print obj

输出:

['line num 1', 'line num 2', 'line num 3', '\n', 'line num4']

它捕获了一些但不是全部。

【问题讨论】:

    标签: python


    【解决方案1】:

    简而言之:在遍历列表时不要擦除元素。

    您可以在这里找到很多方法:Remove items from a list while iterating

    注意:这可能是最短和最 Pythonic 的:

    filter(lambda x: x!='\n', obj)
    

    【讨论】:

      【解决方案2】:

      我只是对整个文件内容使用正则表达式:

      >>> s = """line num 1
      line num 2
      
      line num 3
      
      
      
      line num 4"""
      >>> import re
      >>> print re.sub('\n+', '\n', s)
      line num 1
      line num 2
      line num 3
      line num 4
      

      附:您应该在迭代时更新列表。

      【讨论】:

        【解决方案3】:

        也许if not item.isspace() 会给你一些更易读的东西:

        >>> obj = ['line num 1', 'line num 2', '\n', 'line num 3', '\n', '\n', 'line num4']
        
        >>> [item for item in obj if not item.isspace()]
        
        ['line num 1', 'line num 2', 'line num 3', 'line num4']
        >>> 
        

        【讨论】:

          【解决方案4】:
          def remove_new_line(obj):
              if "\n" in obj:
                  obj.remove("\n")
              remove_new_line(obj)
              return obj
          
          obj = ['line num 1', 'line num 2', '\n', 'line num 3', '\n', '\n', 'line num4']
          
          print remove_new_line(obj)
          

          【讨论】:

            【解决方案5】:

            你也可以试试这个:

            f = open("your file.txt",'r')
            values = f.read()
            val = re.split(r"\n+",values)
            print val
            

            输出 = ['line num 1', 'line num 2', 'line num 3', 'line num 4']

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2023-02-15
              • 1970-01-01
              • 2017-02-03
              • 2020-04-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-04-20
              相关资源
              最近更新 更多