阅读文本文件时如何删除多个空格 [英] How to remove more than one space when reading text file

查看:74
本文介绍了阅读文本文件时如何删除多个空格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题:我似乎无法解析文本文件中的信息,因为python将其读取为完整字符串而不是单独的字符串。每个变量之间的空格不是\t,这就是为什么它不分开的原因。

Problem: I cannot seem to parse the information in a text file because python reads it as a full string not individual separate strings. The spaces between each variable is not a \t which is why it does not separate. Is there a way for python to flexibly remove the spaces and put a comma or \t instead?

示例数据:

MOR125-1   MOR129-1   0.587
MOR125-1   MOR129-3   0.598
MOR129-1   MOR129-3   0.115

我正在使用的代码:

with open("Distance_Data_No_Bootstrap_RAW.txt","rb") as f:
reader = csv.reader(f,delimiter="\t")
d=list(reader)
for i in range(3):
    print d[i]

输出:

['MOR125-1 MOR129-1 0.587']
['MOR125-1 MOR129-3 0.598']
['MOR129-1 MOR129-3 0.115']

所需的输出:

['MOR125-1', 'MOR129-1', '0.587']
['MOR125-1', 'MOR129-3', '0.598']
['MOR129-1', 'MOR129-3', '0.115']


推荐答案

您可以简单地将定界符声明为空格,然后让csv跳过定界符后的初始空格。这样,您的分隔符实际上就是正则表达式'+',即一个或多个空格。

You can simply declare the delimiter to be a space, and ask csv to skip initial spaces after a delimiter. That way, your separator is in fact the regular expression ' +', that is one or more spaces.

rd = csv.reader(fd, delimiter=' ', skipinitialspace=True)
for row in rd:
    print row



['MOR125-1', 'MOR129-1', '0.587']
['MOR125-1', 'MOR129-3', '0.598']
['MOR129-1', 'MOR129-3', '0.115']

这篇关于阅读文本文件时如何删除多个空格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆