【问题标题】:How to remove spaces from file to make one long line?如何从文件中删除空格以制作一长行?
【发布时间】:2021-03-16 00:34:05
【问题描述】:

我想读取一个文件并删除空格。我发誓我已经多次这样做了,但是出于某种原因,我以前使用的方法似乎不起作用。我一定是在某个地方犯了一些小错误,所以我决定制作一个小练习文件(因为我实际需要使用的文件非常大)来找出答案。

原始文件说:

abcdefg (新队) 嘻嘻

但我想让它说: abcdefghijklmn

file = open('please work.txt', 'r')
for line in file:
  lines = line.strip()
  print(lines)
close.file()

但是,它只是说: abcdefg (新队) 嘻嘻

当我使用 line.strip('\n') 它说: abcdefg (大新线) 嘻嘻

任何帮助将不胜感激,因为这是我学到的第一件事,突然我不记得如何使用它了!

【问题讨论】:

    标签: python file spaces


    【解决方案1】:

    如果您想要将每一行连接成一行,您可以利用 rstrip 并连接到一个结果变量:

    with open('test.txt', 'r') as fin:
        lines = ''
        for line in fin:
            stripped_line = line.rstrip()
            lines += stripped_line
        print(lines)
    

    来自如下所示的文本文件:

    abcdefg hijklmnop
    this is a line   
    

    结果将是abcdefg hijklmnopthis is a line。如果您确实想删除空格,则可以在循环之后使用lines = lines.replace(' ',''),这将导致abcdefghijklmnopthisisaline

    【讨论】:

      【解决方案2】:

      输出中的(新行)来自print,它将输出\n。您可以使用print(lines, end='') 将其删除。

      【讨论】:

      • 非常感谢!我能够将 """ print(lines, end='') ''''' 直接复制并粘贴到我的脚本中,并且没有问题!
      【解决方案3】:

      strip() 只删除前导和尾随空格。

      您可以使用string.replace(' ', '') 删除所有空格。

      'abcdefg (new line) hijklmn'.replace(' ', '')
      

      如果您的文件有tabnewline或其他形式的空格,上述方法将不起作用,您需要使用regex删除文件中的所有形式的空格。

      import re
      string = '''this is a \n
      test \t\t\t
      \r
      \v
      
      '''
      
      re.sub(r'\s', '', string)
      #'thisisatest'
      

      【讨论】:

        猜你喜欢
        • 2020-10-02
        • 1970-01-01
        • 2016-08-22
        • 2013-04-10
        • 2014-06-19
        • 1970-01-01
        • 2013-01-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多