【问题标题】:How can I get rid of double spaces? (Python)我怎样才能摆脱双空格? (Python)
【发布时间】:2018-12-06 10:04:44
【问题描述】:

我有一个数据文件 (.txt) 包含一些行,每一行如下:

0 45 1 31 2 54 3 54 4 64

在零之前有一个空格,每两个整数之间有两个空格,最后有一个空格。我想要的是如下所示:

0 45 1 31 2 54 3 54 4 64

我正在尝试一切(使用 Python)但我没有成功!

当然最后我想把它改成:

45 31 54 54 64

这也消除了数字 0 到 4。但是如果我到达第一步,最后一步可能会更容易。

例如我试过这个:

with open('myfile', rt') as openfile, open('myfile_2, 'a') as csvfile:
    for line in openfile:
            A = str(line).replace('  ', ' ')
            Writer = csv.writer(csvfile, delimiter=' ', quotechar=' ')
            Writer.writerow([A])

但是在 `myfile_2' 中,字符串没有被更正。

【问题讨论】:

  • 你什么都试过了?你能举一些例子吗?
  • 当你说“当然你想把它改造成:”时,你呈现的东西根本不明显。您也没有提供任何代码表明您已尝试过。试试字符串方法replace,split然后看看列表切片
  • 你可以选择' '.join(yourString.split()),当然你必须先加载你的文件。
  • 当然,您的帖子缺少您迄今为止所尝试的内容。但我认为您也应该尝试描述您想要实现的目标,因为我觉得“摆脱双重空格”只是您认为实现目标所需的方式。但我敢猜测你的目标可以更容易实现......
  • 试试这个:text.replace(DOUBLESPACE, SINGLESPACE).strip()

标签: python integer whitespace


【解决方案1】:

相应地进行了更改:

with open('newtes.txt', 'w') as outfile, open('tes.txt', 'r') as infile:
    for line in infile:
        outfile.write(line.replace('  ',' ').strip())

编辑 1:按照评论中的建议添加了 strip()
编辑 2:进行了更改。

【讨论】:

  • 添加.strip() 删除开头和结尾的空格。
  • 谢谢。我用的是同样的东西,当我打印的时候是正确的,但是在文件myfile_2中我还有两个空格。
  • 现在检查sn-p。
  • 非常感谢。现在它可以工作了,但是所有行都在一行中,我的意思是没有换行符。
  • 所以我在末尾添加了outfile.write('\n') 作为新行。
【解决方案2】:

您可以改用re

import re
# Handles multiple whitespaces
WHITE_SPACE_PATTERN = re.compile(r' +')
# or
# WHITE_SPACE_PATTERN = re.compile(r'\s+')
# if you want to handle newlines as well

sample_string = "0  45  1  31  2  54  3  54  4  64"
cleaned_string = re.sub(WHITE_SPACE_PATTERN, ' ', sample_string.strip())

【讨论】:

    【解决方案3】:

    您可以使用regular expression 匹配一个或多个空格(' +',其中+ 表示“一个或多个”)并将它们替换为一个空格:

    import re
    line = ''
    file_object  = open("test.txt", "r+")
    for line in file_object:
        line=line
    print re.sub(' +', ' ',line.lstrip())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 2018-07-12
      • 2021-01-27
      • 2020-08-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多