如何在读取文本文件时删除多个空格

Ube*_*Man 4 python csv python-2.7

问题:我似乎无法在文本文件中解析信息,因为python将其读作完整字符串而不是单独的单独字符串.每个变量之间的空格不是\ t,这就是它不分离的原因.有没有办法让python灵活地删除空格并用逗号或\ t代替?

示例数据:

MOR125-1   MOR129-1   0.587
MOR125-1   MOR129-3   0.598
MOR129-1   MOR129-3   0.115
Run Code Online (Sandbox Code Playgroud)

我正在使用的代码:

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]
Run Code Online (Sandbox Code Playgroud)

输出: ['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']
Run Code Online (Sandbox Code Playgroud)

Ser*_*sta 8

您可以简单地将分隔符声明为空格,并要求csv在分隔符后跳过初始空格.这样,您的分隔符实际上是正则表达式' +',即一个或多个空格.

rd = csv.reader(fd, delimiter=' ', skipinitialspace=True)
for row in rd:
    print row
Run Code Online (Sandbox Code Playgroud)
['MOR125-1', 'MOR129-1', '0.587']
['MOR125-1', 'MOR129-3', '0.598']
['MOR129-1', 'MOR129-3', '0.115']
Run Code Online (Sandbox Code Playgroud)