【问题标题】:How to strip multiple spaces, newline and tabs and just put single space in a text file?如何去除多个空格、换行符和制表符,只在文本文件中放置一个空格?
【发布时间】:2017-09-18 10:20:58
【问题描述】:

我有来自here 的莎士比亚的全部作品数据,我想在词嵌入算法中使用这些数据来创建模型。该模型的要求是整个文本只提供单个空格,并且不存在其他类型的空格。我该如何执行此操作?我找到了如何为单个字符串执行此操作,但它不适用于文本文件。

我的尝试(我对python不是很了解):

with open(file_path, 'r') as data:
    for line in data:
        cleanedline = line.strip('\n')

cleanline 在打印时没有删除\n,所以我没有将它们写回文件中。

【问题讨论】:

  • 所以,所有换行符和其他空格都应该用一个空格替换?
  • 是的,它的glove 型号

标签: python parsing formatting text-parsing


【解决方案1】:

你可以试试正则表达式:

import re

with open(file_path) as data:
    text = re.sub(r'\s+', ' ', data.read())

\s+ 正则表达式模式将匹配一个或多个空白字符的任何序列。 re.sub() 会将匹配的文本替换为单个空格。

空格由空格、制表符、换行符、回车符、换页符、垂直制表符等字符组成。不包括标点符号。

不使用正则表达式的另一种方法是使用split(),然后使用join()

with open(file_path) as data:
    text = ' '.join(data.read().split())

【讨论】:

  • @leehuang:它对我有用。您看到的错误是什么,或者什么不起作用?
  • 谢谢,它对我有用,我在自己的代码中犯了一些错误。
猜你喜欢
  • 2012-05-29
  • 2011-09-15
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
  • 2017-10-14
  • 1970-01-01
  • 2013-04-12
相关资源
最近更新 更多